2016-04-09 10 views
8

ich um mit page-break-inside:auto, page-break-inside:avoid, page-break-after:auto, margin-top and margin-bottom und anderen für eine recht lange Zeit gespielt, aber noch keine Lösung, wie zu brechen Zeilen in meiner langen HTML-Tabelle finden kann, was zu verstehen ist gedruckt werden.HTML, CSS - Row Pause für langen Tisch muss ein Update

Seite sieht aus wie der linke Screenshot in Druckmodus (oder Vorschaufenster vor in Chrome Druck):

enter image description here

Alles, was ich erreichen müssen, ist jede Zeile am unteren Rand jeder Seite zu brechen, die wird auf zwei Seiten aufgeteilt werden (zu und ihr Inhalt ..)

Dies ist ein Stück Code meiner Seite lautet:

... 
<style> 
table, th, td { 
    border: 1px solid black; 
    border-collapse: collapse; 
} 
td { padding-left: 15px; padding-right: 15px; } 
@media print{ 
    .netisk{ 
     visibility: hidden; 
    } 
} 
@page{ 
    size: 21cm 29.7cm; 
    margin: 0px; 
} 
body { 
    margin-left: 1cm; 
    margin-right: 1cm; 
} 
</style> 
... 
... 
... 
<?php 

    echo "<table cellspacing='0'><thead><tr><th> ID </th><th> Název projektu </th><th> Kategorie </th><th> Autor </th><th> Třída </th><th> Rok </th><th> Vedoucí práce </th></tr></thead><tbody>"; 

if (mysql_num_rows($result) > 0) { 
    while($row = mysql_fetch_assoc($result)) { 
     echo "<tr><td>" . $row["id"]. "</td><td>" . $row["nazev_projektu"]. "</td><td>" . $row["kategorie"]. "</td><td>" . $row["autor"]. "</td><td>" . $row["trida"]. "</td><td>" . $row["rok"]. "</td><td>" . $row["vedouci_prace"]. "</td></tr>"; 
    } 
} 
    echo "</tbody></table>"; 

    mysql_close($mysql_conn); 

?> 
... 
... 

Seite ist hier:

Wie Sie sehen können, gibt es ein Problem, dass meine Tabelle dynamisch "wächst" abhängig von der Anzahl der Daten in meiner MySQL-Datenbank, so ist es schwierig, eine bestimmte Zeile, wo die Tabelle sollte gebrochen werden.

Wie löst man das?

EDIT: Die angegebene Lösung (How to apply CSS page-break to print a table with lots of rows?) hat mein Problem nicht behoben, gibt es einen anderen Weg (mit HTML und CSS)?

+0

Mögliches Duplikat von [Wie CSS page-break aufzubringen, um eine Tabelle mit vielen Zeilen drucken?] (Http://stackoverflow.com/questions/8712677/how-to-apply-css -page-break-to-Print-a-Tabelle mit vielen Zeilen) – Aziz

+0

Aziz: Vielleicht habe ich eine ähnliche Frage gestellt, aber ich suchte nach vielen Lösungen, die die gleichen CSS-Selektoren verwenden, aber ohne Erfolg. –

Antwort

0

änderte ich eine Regel in Ihrem Stylesheet, es auf diese Weise, zumindest hier auf Firefox funktioniert:

@page { 
    size: 18cm 26.7cm; 
    margin: 1.5cm; 
} 

So definierte ich die Marge in Zentimetern und die von der Seitengröße abgezogen. Ausgedruckt fein ...

+0

Vielen Dank für Ihren Tipp, aber es ist nicht die beste Lösung - Seite ist kleiner und letzte Zeile auf der Seite ist auch geteilt. –

+0

Johannes: http://i.share.pho.to/6ab0c5d2_l.jpeg –

+0

Gibt es eine Möglichkeit, wie man das page-break verwenden - **** Eigenschaft in diesem Fall mein Problem zu lösen? Ich habe das in vielen Kombinationen ausprobiert, aber ohne Wirkung auf das Brechen. –