2016-04-09 4 views
8

Я играл с page-break-inside:auto, page-break-inside:avoid, page-break-after:auto, margin-top and margin-bottom и другими довольно долгое время, но до сих пор не могу найти решение, как разбить строки в моей длинной таблице HTML, которая предназначена для печататься.HTML, CSS - Разрыв строки для длинной таблицы требует исправления

страница выглядит как на левом скриншоте в режиме печати (или окно предварительного просмотра перед печатью в Chrome):

enter image description here

Все, что мне нужно добиться того, чтобы разбить каждую строку в нижней части каждой страницы, которая собираемся быть разделено на две страницах (и его содержание тоже ..)

Это фрагмент коды моей страницы:

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

?> 
... 
... 

Страница: http://student.spsbv.cz/krolop.el12a/mproj/components/tisk.php

Как вы можете видеть, существует проблема, что моя таблица «динамически растет» в зависимости от количества данных в моей базе данных MySQL, поэтому трудно назначить определенную строку, где таблица должны быть нарушены.

Как это решить?

EDIT: данное решение (How to apply CSS page-break to print a table with lots of rows?) не исправило мою проблему, есть ли другой способ (используя HTML и CSS)?

+0

Возможный дубликат [Как применить разрыв страницы CSS для печати таблицы с большим количеством строк?] (Http://stackoverflow.com/questions/8712677/how-to-apply-css -page-break-to-print-a-table-with-lots-of-rows) – Aziz

+0

Азиз: Возможно, я задал аналогичный вопрос, но я просмотрел множество решений, которые используют одни и те же селекторы CSS, но без успех. –

ответ

0

Я изменил одно правило в таблице стилей, он работает именно так, по крайней мере здесь на Firefox:

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

Так я определил разницу в сантиметрах и вычесть тех, от размера страницы. Отпечатано прекрасно ...

+0

Спасибо за ваш отзыв, но это не лучшее решение - страница меньше, а последняя строка на странице также разделена. –

+0

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

+0

Есть ли способ, как использовать этот разрыв страницы - свойство **** в этом случае, чтобы решить мою проблему? Я пробовал это во многих комбинациях, но без эффекта на разрыв. –