Dompdf: принудительно разделить строку таблицы на 2 страницы - PullRequest
0 голосов
/ 01 февраля 2019

Я использую «dompdf / dompdf»: «^ 0.8.3» для печати PDF.

У меня есть простая таблица со строками tds с большим текстовым содержимым ... Например:

<!DOCTYPE html>
<html>

<head>
</head>

<body>
    <table>
        <thead>
            <tr>
                <th>PRODUCT</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>1-----
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                </td>
            </tr>
            <tr>
                <td>2-----
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                </td>
            </tr>
            <tr>
                <td>3-----
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                </td>
            </tr>
            <tr>
                <td>4-----
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                </td>
            </tr>
            <tr>
                <td>5-----
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
                </td>
            </tr>
        </tbody>
    </table>
</body>

</html>

enter image description here

Когда я распечатываю его на странице формата A4, мне хотелось бы, чтобы часть 4-й строки была напечатана на первой странице в доступном пространстве, а затемпродолжить печатать остальную часть текста на следующей странице.Но похоже, что весь 4-й ряд перенесен на вторую страницу.Есть ли способ заставить это (используя CSS или через настройки dompdf) в соответствии с моим требованием?

Я пробовал следующий CSS для разрывов страниц:

table {
    page-break-inside: auto;
}

table tr {
    page-break-inside: auto;
}

table tr td {
    page-break-inside: auto;
}

Но они никогдапомогли мне разделить строку между 2 страницами.

Спасибо за ваш быстрый отзыв ..

Ура !!

1 Ответ

0 голосов
/ 16 февраля 2019

Dompdf (в настоящее время 0,8,3 на этот пост) не поддерживает разбиение строк таблицы по страницам.Это давняя проблема с Dompdf (ref https://github.com/dompdf/dompdf/issues/98).

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

Этот заголовок таблицы имеет только один признак. Если образец действительно отражает ваш вывод, вы могли бы использовать вместо этого заголовок страницы.

Что-то вроде строкиз следующего:

<!DOCTYPE html>
<html>

<head>
  <style>
    @page { margin-top: 50px; }
    #header { position: fixed; top: -50px; left: 0px; right: 0px; padding: 10px; text-align: center; font-weight: bold; }
  </style>
</head>

<body>

  <div id="header">
    PRODCUT
  </div>

  <div>
  1-----
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
    MCHBMES1 -- MCHBMES1 -- MCHBMES1 -- MCHBMES1 --
  </div>

</body>

</html>
...