stefan: Seitenweise drucken

Hallo zusammen,

ich hohle mir per Javascript Daten von der Datenbank und möchte diese nun nach Thema sortiert ausdrucken. D.H. für jedes Thema soll es eine eigene Druck-Seite geben.

z.B.:

Thema: Person 1

Tabelle mit ca. 16 Zeilen

Thema: Person 2

Tabelle mit ca. 60 Zeilen

usw.

also wenn ein neues Thema (Person) kommt soll beim drucken eine neue Druck-Seite angefangen werden.

Per HTML geht dies nicht per CSS hatte ich es auch schon probiert und per Javascript ???

Hat jemand eine Idee wie ich so etwas durchführen kann?

Also man kan in der Druckauswahl mehrere Themen auswählen nicht nur eins.

Weiterhin bin ich auch am überlegen wie ich es hinbekommen könnte bei einem Thema mit z.B. 160 Zeilen am Anfang jeder Querformatseite oben ein HTML-Table Header einzufügen.

Gruß
Stefan

  1. Hallo Stefan!

    also wenn ein neues Thema (Person) kommt soll beim drucken eine neue Druck-Seite angefangen werden.

    Per HTML geht dies nicht per CSS hatte ich es auch schon probiert und per Javascript ???

    Kennst du schon http://de.selfhtml.org/css/eigenschaften/printlayouts.htm?

    Viele Grüße

    H-P Ortner

    1. Hallo Stefan!

      also wenn ein neues Thema (Person) kommt soll beim drucken eine neue Druck-Seite angefangen werden.

      Per HTML geht dies nicht per CSS hatte ich es auch schon probiert und per Javascript ???
      Kennst du schon http://de.selfhtml.org/css/eigenschaften/printlayouts.htm?

      Viele Grüße

      H-P Ortner

      Sich, das hatte ich schon durchstudiert aber es klappt nicht so wie ich es will.

      hier ein kleiner Ausschnitt aus meiner CSS

      .printtable {height:590;}
      .naechsteseite {page-break-inside:avoid;}

      @page { size:landscape }

      1. Hallo Stefan!

        Kennst du schon http://de.selfhtml.org/css/eigenschaften/printlayouts.htm?

        Sich, das hatte ich schon durchstudiert aber es klappt nicht so wie ich es will.

        hier ein kleiner Ausschnitt aus meiner CSS

        .printtable {height:590;}
        .naechsteseite {page-break-inside:avoid;}

        @page { size:landscape }

        Tut mir leid, das einzige, das die meisten aktuellen Browser unterstützen ist page_break_after also der Seitenumbruch, der dir besonders wichtig ist.

        Wenn du die Gestaltung der Seite besser kontrollieren willst, scheint mir am besten, das in PDF oder ein anderes Format zu konvertieren und das dann als Drucklayout anzubieten.

        Viele Grüße

        H-P Ortner

        1. Hallo Stefan!

          Kennst du schon http://de.selfhtml.org/css/eigenschaften/printlayouts.htm?

          Sich, das hatte ich schon durchstudiert aber es klappt nicht so wie ich es will.

          hier ein kleiner Ausschnitt aus meiner CSS

          .printtable {height:590;}
          .naechsteseite {page-break-inside:avoid;}

          @page { size:landscape }

          Tut mir leid, das einzige, das die meisten aktuellen Browser unterstützen ist page_break_after also der Seitenumbruch, der dir besonders wichtig ist.

          Wenn du die Gestaltung der Seite besser kontrollieren willst, scheint mir am besten, das in PDF oder ein anderes Format zu konvertieren und das dann als Drucklayout anzubieten.

          Viele Grüße

          H-P Ortner

          stimmt, da hast Du recht daran hatte ich auch schon gedacht es in PDF zu konvertieren.

          Ich werde nur zu vorab versuchen die Zeilen in einen Array zu schreiben und die Zeilen dann zu zählen. Nach der 25 Zeile z.B. gibt es einen Zeilenumbruch und ich versuche dann den Header anzuhängen. Mal schauen ob es so geht.

          Gruß und Danke Euch

          Wenn Ihr noch einen Tip für mich habt ich bin ganz Ohr.
          Stefan

          1. Hallo Stefan!

            stimmt, da hast Du recht daran hatte ich auch schon gedacht es in PDF zu konvertieren.

            Ich werde nur zu vorab versuchen die Zeilen in einen Array zu schreiben und die Zeilen dann zu zählen. Nach der 25 Zeile z.B. gibt es einen Zeilenumbruch und ich versuche dann den Header anzuhängen. Mal schauen ob es so geht.

            Wenn Ihr noch einen Tip für mich habt ich bin ganz Ohr.

            An Stelle von PDF reicht eventuell auch eine RTF-Datei.

            http://www.devx.com/asp/Article/17964/1954?pf=true

            Hier ein Beispiel mit Querformat und Seitenumbruch:

            {\rtf\paperw16840\paperh11907\margl1134\margr1418\margt1418\margb1418
             Hallo Welt!
             \par
             {\i So} kann man {\b Text} formatieren.
             \par
             \page
             Da beginnt die nächste Seite\par
             Da ist das Ende.
            }

            (Einfach den Text in eine Textdatei eingeben und die dann mit der Endung rtf speichern)

            Und hier die Spezifiaktion wenn du noch Schriftart, Kopf- und Fußzeile, Tabellen oder ähnliches brauchst: http://latex2rtf.sourceforge.net/RTF-Spec-1.0.txt

            Viele Grüße

            H-P Ortner

            1. Hallo,

              das hört sich ja interessant an und sieht auch genau so aus wie ich es  eigentlich will.

              Nur wie kann ich meine dynamisch erstellte Javascriptseite in RTF konvertieren ?

              Wenn Das ginge wäre es super.

              Gruß
              Stefan

              1. Hallo Stefan!

                Nur wie kann ich meine dynamisch erstellte Javascriptseite in RTF konvertieren ?

                Wie erstellst du die Seite?
                Mit Javascript am Client oder mit serverseitiger Technik?

                Wenn serverseitig, kannst du die "Druckansicht" auch serverseitig erstellen, also eine zweite Seite mit gleichem Inhalt aber als RTF.

                Wenn du die Seite clientseitig mit Javascript erstellst, ist für die Druckansicht wohl eine andere Lösung erforderlich. Was sind die Rahmenbedingungen?

                Viele Grüße

                H-P Ortner

                1. Hallo zusammen,

                  ich habe es nun folgendermaßen hinbekommen :-)

                  Ich habe jede DB-Abfrage in einen Array geschrieben und dieses dann nach der Anzahl der Zeilen und einem darübergestellten Header ausgegeben.

                  Klappt prima.

                  Gruß und Danke Euch
                  Stefan

      2. Hallo.

        .printtable {height:590;}

        Semikolon ist keine geeignete Einheit, und Punkt wird "pt" abgekürzt.
        MfG, at

  2. hi,

    Per HTML geht dies nicht per CSS hatte ich es auch schon probiert und per Javascript ???

    Wenn, dann per CSS - allerdings mit alles andere als optimaler Browserunterstützung.

    Da du nicht weist, wie groß meine Druckseite ist, scheidet Javascript m.E. aus - es sei denn, du würdest damit das Dokument in mehrere kleine "zerpflücken", die dann nacheinander ausgedruckt werden können.
    (Es wäre z.B. denkbar, immer den jeweiligen Dokumentteil dynamisch in ein Popup oder einen unsichtbaren Frame auszugeben, und dann ebenfalls per Script den Druckdialog aufzurufen. Aber abgesehen von Timingproblemen (müsste Javascript jedes mal warten, bis ein Dokument fertig gedruckt ist, und wenn ja - wie könnte es das überhaupt?) würde damit vermutlich kein Weg daran vorbeiführen, dass der Nutzer für jedes neue Teildokument erneut den Druckdialog bestätigt.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. die gesamte DB-Abfrage wird schon in einem Popupfenster per Tabellen angezeigt, sie müsste nur noch per Thema ausgedruckt und bei einem größeren Thema auf jede Seite ein Header mit der Themenbeschreibung angehängt werden.

      1. hi,

        die gesamte DB-Abfrage wird schon in einem Popupfenster per Tabellen angezeigt, sie müsste nur noch per Thema ausgedruckt und bei einem größeren Thema auf jede Seite ein Header mit der Themenbeschreibung angehängt werden.

        Nun, du könntest natürlich die nicht-relevanten Themen je Druckgang dynamisch ausblenden, und entsprechende Überschriften auch ggf. noch dynamisch einfügen - aber am grundsätzlichen Problem des merhfachen Druckvorgangs und damit -dialogs wird das wohl nichts ändern.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi,

          die gesamte DB-Abfrage wird schon in einem Popupfenster per Tabellen angezeigt, sie müsste nur noch per Thema ausgedruckt und bei einem größeren Thema auf jede Seite ein Header mit der Themenbeschreibung angehängt werden.

          Nun, du könntest natürlich die nicht-relevanten Themen je Druckgang dynamisch ausblenden, und entsprechende Überschriften auch ggf. noch dynamisch einfügen - aber am grundsätzlichen Problem des merhfachen Druckvorgangs und damit -dialogs wird das wohl nichts ändern.

          gruß,
          wahsaga

          ich wähle zuvor die relevante Themen die gedruckt werden sollen aus also fällt das dynamische ausblenden weg.

          Alle Themen die ich nun angezeigt bekomme z.B. ca. 30 Seiten a 14 Themen müssten nun Themenspezifisch gedruckt werden also das auf einer Seite kein Thema 2 erscheint.

  3. Hallo Stefan,

    Querformat?
    Wie willst Du das denn hinbekommen?

    Wenn Du einen Seitenumbruch erzielen willst weise doch dem HTML Element die gewünschte CSS Eigneschaft zu.

    Müsste doch funktionieren?!

    Und wenn Du vor jeder Seite einen Standard Header haben willst, kannst Du den doch ggf. per JS in dein Dokument an der richtigen stelle einbetten, mit einer Klasse die erst durch das Druck-CSS auf "block" gesetzt wird, und sonst die eigenschaft "none" hat.

    Liebe Grüße,

    Bernd