У меня есть таблица php, в которой содержится информация о выставлении счетов определенных номеров. После создания этой таблицы я экспортирую его в pdf, используя mpdf. Если таблица имеет определенное количество строк, она разбивает страницу странным образом, заставляя заголовки повторяться на следующей странице без строк. Вот формат таблица:php table break page без строк на следующей странице
Таблица содержит до 3 заголовков внутри <thead>
тегов, например:
<table class="items" width="100%" style="font-size: 9pt; border-collapse: collapse;" cellpadding="8">
<thead>
<tr>
<td width="30.3%">Forbrug</td>
<td width="23.1%">Periode</td>
<td width="10.76%">Tid/MB</td>
<td width="9.28%">Enheder</td>
<td width="12.9%" align="right">I alt</td>
<td width="13.3%" align="right">I alt+<b>moms</b></td>
</tr>
</thead>
строк добавляются в то время как из базы данных таким образом .. ничего особенного
<tr>
<td>'.$produktNameFromDatabase.'</td>
<td>'.$periodeFromDatabase.'</td>
<td>'.$tidMbFromDatabase.'</td>
<td>'.$enhederFromDatabase.'</td>
<td align="right">'.number_format((float)$produktpris, 2, ',', '.').' kr.</td>
<td align="right"><b>'.number_format((float)$produktpris*(1 + (0.25 * $moms)) - $momsDiscount, 2, ',', '.').' kr.</b></td>
</tr>
с общими линиями в конце
<tr>
<td class="blanktotal" colspan="1" rowspan="6"></td>
<td class="blanktotal" colspan="1" rowspan="6"></td>
<td class="totals" colspan="2">Subtotal:</td>
<td class="totals" colspan="2">'.number_format((float)$pris1, 2, ',', '.').' kr.</td>
</tr>
<tr>
<td class="totals1" colspan="2">Moms:</td>
<td class="totals1" colspan="2">'.number_format((float)$pris1*(0.25 * $moms) - $momsTotal, 2, ',', '.').' kr.</td>
</tr>
<tr>
<td class="totals1" colspan="2"><b>TOTAL:</b></td>
<td class="totals1" colspan="2"><b>'.number_format((float)$pris1*(1 + (0.25 * $moms)) - $momsTotal, 2, ',', '.').' kr.</b></td>
</tr>
</tbody>
</table>
!!! ВСЕ, что вы уже видели, включая итоговые данные, являются частью таблицы!
Вот настройки MPDF, что у меня есть:
В PhP:
$mpdf=new mPDF('win-1252','A4','','',20,15,48,25,10,10);
$mpdf->useOnlyCoreFonts = true; // false is default
$mpdf->SetProtection(array('print'));
$mpdf->SetTitle("Suggestive Title");
$mpdf->SetAuthor("Author");
$mpdf->SetWatermarkText("Faktura");
$mpdf->showWatermarkText = true;
$mpdf->watermark_font = 'DejaVuSansCondensed';
$mpdf->watermarkTextAlpha = 0.1;
$mpdf->SetDisplayMode('fullpage');
В HTML:
$html .= '<!--mpdf
<htmlpageheader name="myheader">
<table width="100%"><tr>
<td width="50%" style="color:#000000;">
<span style="font-weight: bold; font-size: 14pt;">
Company Name
</span>
Company Information
</td>
<td width="50%" style="text-align: right;">
<img src="image.jpg" />
Invoice Information <br />Side: {PAGENO} af {nb}
</td>
</tr></table>
</htmlpageheader>
<htmlpagefooter name="myfooter">
<div style="border-top: 1px solid #000000; font-size: 9pt; text-align: center; padding-top: 3mm; ">
Footer Stuff
</div>
<div style="font-size: 9pt; text-align: center;">
Other Footer Stuff
</div>
</htmlpagefooter>
<sethtmlpageheader name="myheader" value="on" show-this-page="1" />
<sethtmlpagefooter name="myfooter" value="on" />
mpdf-->';
Некоторые стиль, который я использую
body {font-family: sans-serif;
font-size: 10pt;
}
p { margin: 0pt;
}
td { vertical-align: top; }
.items td {
border-left: 0.1mm solid #000000;
border-right: 0.1mm solid #000000;
}
table thead td { background-color: #d4ffaa;
border: 0.1mm solid #000000;
}
.items td.blanktotal {
background-color: #FFFFFF;
border: 0mm none #000000;
border-top: 0.1mm solid #000000;
border-right: 0.0mm solid #000000;
}
.items td.totals {
text-align: right;
border-top: 0.1mm solid #000000;
border-right: 0.0mm solid #000000;
border-left: 0.0mm solid #000000;
}
.items td.totals1 {
text-align: right;
border-top: 0.0mm solid #000000;
border-right: 0.0mm solid #000000;
border-left: 0.0mm solid #000000;
}
Результат выглядит примерно так:
Эта проблема возникает только, когда число строк заполняет страницу. Если он переполняется, это не является серьезной проблемой, поскольку заголовки таблиц все еще присутствуют на следующей странице (все они, к сожалению, не только последние), а остальные строки добавляются далее.
Как я могу избавиться от этих пустых строк, в этом особом случае?
Спасибо!
!! EDIT:Добавлено больше информации, код и лучший образ дела. Извините, что не делал этого в первый раз!
!! EDIT # 2:Я просто наблюдал на других примерах, которые имели более 1 страницы строк, что <thead>
s сохранить свои позиции на следующих страницах. Так происходит все время. Есть ли способ отключить это, чтобы другие <thead>
s просто продолжали на следующей странице с верхней части страницы, не запомнив позицию с предыдущей страницы?
Я добавил все заголовки, как вы показали мне, и установили заголовки в mpdf, Но это не работает. Таким образом, проблема здесь заключается в том, что строки таблицы заполняют таблицу (не превышают). Он добавляет заголовки на вторую страницу без строк. Если строки превышают страницу, нет проблем с повторением заголовка на второй странице, только если он заполняет страницу ... –
Ну, если вы не покажете свой код, невозможно будет убедиться в том, что действительно происходит;) – ShutUpMagda
Приношу свои извинения за это. Я добавил немного больше материала и объяснил немного лучше, чтобы вы могли лучше понять дело. Я не могу показать все, к сожалению, потому что это не моя индивидуальная работа, но я стараюсь показать все, что имеет значение, чтобы я мог решить проблему. Пожалуйста, скажите мне, насколько это актуально, что я добавил сейчас. Спасибо! –