2016-04-09 31 views
8

Ho giocato a lungo con page-break-inside:auto, page-break-inside:avoid, page-break-after:auto, margin-top and margin-bottom e altri per parecchio tempo, ma non riesco ancora a trovare una soluzione su come suddividere le righe nella mia lunga tabella HTML, che è pensata per essere stampatoHTML, CSS - L'interruzione di riga per la tabella lunga richiede una correzione

pagina si presenta come lo screenshot a sinistra in modalità di stampa (o finestra di anteprima prima della stampa in Chrome):

enter image description here

Tutto quello che serve per raggiungere è quello di rompere ogni riga in fondo a ogni pagina, che sta per essere diviso su due pagine (e il suo contenuto troppo ..)

Questo è un pezzo di codice della mia pagina:

... 
<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); 

?> 
... 
... 

Pagina è qui: http://student.spsbv.cz/krolop.el12a/mproj/components/tisk.php

Come potete vedere, c'è un problema, che la mia tabella "cresce" in modo dinamico a seconda del numero di dati nel mio database MySQL, quindi è difficile assegnare una riga specifica, dove la tabella dovrebbe essere rotto

Come risolvere questo?

MODIFICA: la soluzione fornita (How to apply CSS page-break to print a table with lots of rows?) non ha risolto il problema, esiste un modo diverso (utilizzando HTML e CSS)?

+0

Possibile duplicato di [Come applicare l'interruzione di pagina CSS per stampare una tabella con un sacco di righe?] (Http://stackoverflow.com/questions/8712677/how-to-apply-css -page-break-to-print-a-table-with-lots-of-rows) – Aziz

+0

Aziz: Forse ho fatto una domanda simile, ma ho cercato molte soluzioni, che usano gli stessi selettori CSS, ma senza successo. –

risposta

0

ho cambiato una regola nel foglio di stile, funziona in questo modo, almeno qui su Firefox:

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

Così ho definito il margine in centimetri e sottratti quelli del formato della pagina. Stampato bene ...

+0

Grazie per il tuo suggerimento, ma non è la soluzione migliore - la pagina è più piccola e anche l'ultima riga sulla pagina è divisa. –

+0

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

+0

C'è un modo, come utilizzare quella interruzione di pagina - **** proprietà in questo caso, per risolvere il mio problema? L'ho provato in molte combinazioni, ma senza effetti sulla rottura. –