Thomas Luethi: Tabellenkopf auf jeder Druckseite anzeigen

Beitrag lesen

Hallo,

@media print
{ THEAD {display: table-header-group} }
sollte im IE6 funktionieren!
Tut es aber nicht, denn eben diese Struktur habe ich eingebunden und sie funktioniert nicht.

Wie erwaehnt steht in der CSS 2 Spec. nur als Vorschlag,
dass Browser wegen dieser CSS-Anweisung den Tabellenkopf
auf jeder Seite ausdrucken koennen.
Es gibt kein vorgeschriebenes Verhalten, und somit auch
kein "funktionieren" oder "nicht funktionieren".
Ein Browser kann also table-header-group "koennen" (kennen)
und es trotzdem nicht so ausdrucken, wie Du es gerne haettest.

Gibt es denn eine Möglichkeit mittels CSS irgendwie abzufragen, wieviel px oder cm der drucker auf einer Seite darstellen kann und dann danach eigene "Einzelseiten" mit direktem page-break-after zu generieren?

CSS ist keine Programmiersprache und kann nichts "abfragen"
oder "ausrechnen".
Wenn schon waere sowas hoechstens mit JavaScript moeglich.
Ich bezweifle aber, dass diese Dimensionen abfragbar sind.

Ich wuerde stattdessen einfach fixe Seitenumbrueche einbauen,
und zwar so, dass es "auf jeden Fall Platz hat".
Das heisst, als zur Verfuegung stehenden Raum wuerde ich
ein DIN-A4-Blatt (21.0 x 29.7 cm) abzueglich 2.5 cm auf
jeder Seite voraussetzen, also eine bedruckbare Flaeche
von 16 x 24.7 cm.

Jakob Nielsens Meinung zum Thema:
http://www.useit.com/alertbox/9608.html

Du hast also dann mehrere Tabellen.
Fuer die Bildschirmansicht kannst Du diese ja wie bisher
als eine grosse Tabelle anzeigen lassen, indem Du
margin-top und margin-bottom der Tabellen auf Null setzt.

Dass die Spaltenueberschriften auch mitten in der Tabelle
regelmaessig wiederholt werden, kann sogar noch zur Benutzerfreundlichkeit und Lesbarkeit beitragen.
Wenn es Dich aber stoert, kannst Du ja den THEAD bei allen
Tabellen ausser der ersten im Screen-CSS ausblenden.

Wenn Du so richtig rumbasteln willst, machst Du natuerlich
aus Deinen XML-Daten on-the-fly PDF-Dateien :-)

Gruesse,

Thomas