blind: Zeilenumbruch und Überschrift

Hallo,

ich möchte eine Tabelle ausdrucken (dynmischer Inhalt). Leider macht er immer mitten in einer Zeile einen Zeilenumbruch. Wie kann ich das verhindern??

Kann ich die Überschift auf jeder Seite anziegen lassen oder muss ich das (wie z.B. in Word) durch eine Kopfzeile machen?? (Wie ginge das??)

Gruss, blind

  1. Hi!

    Lies dir mal den Tipps und Tricks-Artikel zum CSS-Drucklayout durch.

    Kopf- und Fusszeilen kannst du mit <thead> bzw. <tfoot> auszeichnen, inweiweit die Browser aber die Wiederholung auf den Ausdrucken unterstützen, weiß ich nicht.

    Gruß

    Martin

  2. Hi,

    ich möchte eine Tabelle ausdrucken (dynmischer Inhalt). Leider macht er immer mitten in einer Zeile einen Zeilenumbruch. Wie kann ich das verhindern??

    Der Tabellenzelle das CSS-Attribut white-space (http://www.css4you.de/white-space.html) zuordnen.

    Gruß,
    Aarakast

    1. Hi,

      Der Tabellenzelle das CSS-Attribut white-space (http://www.css4you.de/white-space.html) zuordnen.

      Igitt - eine für die Demonstration der Eigenschaft völlig unsinnige Tabelle. ;-)
      Warum nicht http://de.selfhtml.org/css/eigenschaften/ausrichtung.htm#white_space?

      Davon abgesehen hilft diese Eigenschaft hier nun wirklich nicht. Welchen Sinn sollte es machen, überstehende Inhalte abzuschneiden bzw. evtl. auf einer Extra-Seite auszudrucken?

      freundliche Grüße
      Ingo

  3. Hallo,

    wenn ich das so mache bringt das mir nichts.

    <style type="text/css">
    @page { white-space:pre; }
    @page { size:landscape; }
    @media print {

    body         { font-family: Arial; color: #000099; font-size: 10pt; background-color: #FFFFFF;
                   margin-left: 10px; margin-top: 5px; margin-bottom: 0cm }
    a:link       { color: #008000; text-decoration: none }
    a:visited    { color: #008000; text-decoration: none }
    a:active     { color: #008000; text-decoration: none }
    a:hover      { color: #008000; text-decoration: none }
    td           { border:1px solid #000099; font-size: 5.5pt; color: #000099; font-family: Arial; vertical-align:top}
    th           { border:1px solid #000099; font-family: Arial; font-size: 5.5pt; color: #000099; background-color: #EEEEEE; vertical-align:bottom }
    }

    Gruss, blind

    1. Hi,

      wenn ich das so mache bringt das mir nichts.

      logisch. Abgesehen davon solltest Du Dir (z.B. unter http://de.selfhtml.org/css/eigenschaften/printlayouts.htm#page) einmal die (bzw. das) Browser-Icon ansehen, was Dir sagt, in welchen Browsern das überhaupt funktioniert.

      freundliche Grüße
      Ingo

      1. Hi,

        wie könnte ich das dann machen????

        Gruss, blind

        1. Hi,

          wie könnte ich das dann machen????

          zunächst mal angeben, was denn überhaupt passieren soll, wenn der Inhalt einer Tabellenzelle nicht in eine Zeile paßt?

          freundliche Grüße
          Ingo

          1. Hi,
            dann in eine neue Zeile. Nur wie mache ich das??  Bin da noch ein ziemlicher Anfänger!!

            Gruss,

            1. Hi,

              dann in eine neue Zeile.

              ein Zeilenumbruch ist doch das ganz normale Verhalten. Oder kann es sein, daß Du hier Zeile mit Seite verwechselst?

              freundliche Grüße
              Ingo

              1. Hi,
                hast recht. Habe mich verschrieben. Meinte einen neue Seite!

                Gruss, blind

                1. Hi,

                  hast recht. Habe mich verschrieben. Meinte einen neue Seite!

                  mehrfach verschrieben = falsch gedacht. ;-)

                  Hierfür hast Du nur eine einigermaßen praxistaugliche Möglichkeit:
                  gebe der TR, die auf einer neuen Seite gedruckt werden soll, die Eigenschaft page-break-before:always.

                  freundliche Grüße
                  Ingo

                  1. Hi,
                    Danke. Wenn ich das so  { page-break-after:avoid; } im CSS bringen, bringt das nichts.

                    Wie sieht der Befehl dann aus??

                    Gruss, blind

                    1. Hi,

                      Wie sieht der Befehl dann aus??

                      genau so, wie ich es Dir geschrieben habe.

                      freundliche Grüße
                      Ingo

                      1. Hi,
                        was meintest Du mit TR??

                        habe das so in die CSS geschrieben, nur bringen tut es nichts.

                        <style type="text/css">

                        @media print {

                        @page { size:landscape; }
                        page-break-before:always

                        body         { font-family: Arial; color: #000099; font-size: 10pt; background-color: #FFFFFF;
                                       margin-left: 10px; margin-top: 5px}
                        a:link       { color: #008000; text-decoration: none }
                        a:visited    { color: #008000; text-decoration: none }
                        a:active     { color: #008000; text-decoration: none }
                        a:hover      { color: #008000; text-decoration: none }
                        td           { border:1px solid #000099; font-size: 5.5pt; color: #000099; font-family: Arial; vertical-align:top}
                        th           { border:1px solid #000099; font-family: Arial; font-size: 5.5pt; color: #000099; background-color: #EEEEEE; vertical-align:bottom }
                        }

                        Gruss, blind

                        1. Hi,

                          was meintest Du mit TR??

                          Nanu, Du kennst <tr> nicht und verwendest es trotzdem?

                          @media print {

                          @page { size:landscape; }

                          das funktioniert eh' in den meisten Brosern nicht.

                          page-break-before:always

                          hier fehlt natürlich der Selektor.

                          freundliche Grüße
                          Ingo

                          1. Hi,

                            so vielleicht??

                            <style type="text/css">

                            @media print {

                            @page { size:landscape; }

                            </tr page-break-after:avoid;>

                            body         { font-family: Arial; color: #000099; font-size: 10pt; background-color: #FFFFFF;
                                           margin-left: 10px; margin-top: 5px}
                            a:link       { color: #008000; text-decoration: none }
                            a:visited    { color: #008000; text-decoration: none }
                            a:active     { color: #008000; text-decoration: none }
                            a:hover      { color: #008000; text-decoration: none }
                            td           { border:1px solid #000099; font-size: 5.5pt; color: #000099; font-family: Arial; vertical-align:top}
                            th           { border:1px solid #000099; font-family: Arial; font-size: 5.5pt; color: #000099; background-color: #EEEEEE; vertical-align:bottom }
                            }

                            Gruss, blind

                            1. Hi,

                              was soll denn das:

                              </tr page-break-after:avoid;>

                              bitteschön im CSS zu suchen haben? Bitte beschäftige Dich mit den link:http://de.selfhtml.org/css/intro.htm#formate_eigenschaften@title=Grundlagen] von CSS und kopiere auch nicht ständig den folgenden, völlig irrelevanten Code.

                              freundliche Grüße
                              Ingo

                              1. Hi,

                                sorry, hast recht. Habe es so gemacht:
                                tr           { page-break-after:always; }

                                Allerdings mit dem Erfolg,dass jetzt nach jeder Zeile eine neue Seite begonnen wird (Tabelle wird durch eine While - Schleife ausgegeben.

                                Gruss, blind

                                1. Hi,

                                  tr           { page-break-after:always; }

                                  Allerdings mit dem Erfolg,dass jetzt nach jeder Zeile eine neue Seite begonnen wird

                                  natürlich. Du hast Dich noch nicht mit den Grundlagen beschäftigt!? Hier sollte Dich insbesondere Zentrale Formate definieren interessieren.

                                  freundliche Grüße
                                  Ingo

                                  1. Hi,

                                    ist es bei dynamischen Tabellen überhaupt möglich,dass er automatisch einen Seitenumbruch macht??
                                    z.B. 20 Sätze => Seitenumbruch hat auch keinen Wert.

                                    Gruss, blind

                                    1. Hi,

                                      ist es bei dynamischen Tabellen überhaupt möglich,dass er automatisch einen Seitenumbruch macht??

                                      was meinst Du mit dynamisch? HTML hat keine Dynamik - und bricht ohne weiteren Angaben immer dann um, wenn das Seitenende erreicht ist.

                                      z.B. 20 Sätze => Seitenumbruch hat auch keinen Wert.

                                      ?

                                      freundliche Grüße
                                      Ingo

                                      1. Hi,
                                        mit z.B. 20 Sätze meinte ich, dass immer nach 20 Sätzen ein Seitenumbruch vorgenommen wird.

                                        Das Problem ist, dass ich das mit dem Seitenumbruch nicht hinbekomme!
                                        Er macht mir immer nach jéder Zeile einen Umbruch. Wie geht das??

                                        Gruss, blind

                                        1. Hi,

                                          mit z.B. 20 Sätze meinte ich, dass immer nach 20 Sätzen ein Seitenumbruch vorgenommen wird.

                                          dann verwende doch einfach hierzu serverseitige Logik und gib jeder 20. tr eine class mit, der Du dann page-break-before:always zuweist.

                                          freundliche Grüße
                                          Ingo

                                          1. Hi,
                                            da die Zeilenbreite pro Datensatz unterschiedlich ist (1, 2 oder 3 Zeilen) geht das nicht. Deshalb muss das System erkennen, wenn die Seite zuende ist und muss rechtzeitig einen Seitenumbruch vornehmen. Nur wie bekomme ich das hin??

                                            Gruss, blind

                                            1. Hi,

                                              da die Zeilenbreite pro Datensatz unterschiedlich ist (1, 2 oder 3 Zeilen) geht das nicht. Deshalb muss das System erkennen, wenn die Seite zuende ist

                                              nein - wann der Text so umfangreich ist, daß er voraussichtlich nicht mehr auf eine Seite paßt.

                                              Du hast serverseitig lediglich den Text zur Analysierung zur Verfügung. Schau' Dir zunächst an, wieviele Zeichen durchschnittlich mit der verwendeten Schrift in eine Zeile einer DIN-A-4 Seite passen und berücksichtige die üblichen Randeinstellungen. Zähle dann die auszugebenden Zeichen und ermittle die ungefähre Zeilenanzahl. Sei etwas großzügig dabei - besser zu früh umbrechen als zu spät. Wenn Du es bei Proportionalschrift noch genauer machen willst, dann berücksichtige bei der Berechnung die individuelle Breite jedes einzelnen Zeichens.

                                              Zugegeben, ein sehr aufwendiger Weg, aber eine reine CSS-Lösung scheitert an den in diesem Bereich mangelnden Fähigkeiten der meisten Browsern.

                                              freundliche Grüße
                                              Ingo