У меня есть некоторые данные формы, и после отправки создается PDF. Проблема в размере таблиц в PDF. Если какая-то строка в моей форме слишком длинная, PDF генерируется неправильно. Это потому что таблицы. Они имеют статический размер, поэтому, если строка слишком длинная, таблица не может вместить ее. Я использую библиотеку mPDF.
Как я могу сделать динамику размеров этих таблиц, чтобы их размер изменялся в зависимости от длины строки?
Если строка {p} самая длинная, то ширина таблицы уменьшает размер таблицы. Я хочу, чтобы, если строка {p} была длиннее ширины таблицы, тогда {p} должен выписываться в следующей строке, а высота таблицы должна увеличиваться.
Снимок экрана, если строка в поле (имя) короткая:
Скриншот, если строка в поле (имя) длинна:
Скриншот, если строка в поле (имя) очень длинная:
Вот фрагмент кода с mPDF:
$mpdf=new mPDF('UTF-8','A4','','',20,15,48,25,10,10);
$mpdf->shrink_tables_to_fit=1;
$mpdf->keep_table_proportions = true;
$mpdf->WriteHTML(generatePDF());
$mpdf->AddPage();
$mpdf->WriteHTML(generatePDF2());
$mpdf->Output();
exit;
И фрагмент таблиц HTML:
function generatePDF(){
global $a,$b,$c,$d;
$html = getHTMLStyle().'
<div style="text-align: left;"><span style="font-size: 11pt;font-weight: bold;">FORMULARZ KONSULTACJI<br />PROJEKTU PRAWA MIEJSCOWEGO<br /> W ZAKRESIE DZIAŁALNOŚCI STATUTOWEJ ORGANIZACJI POZARZĄDOWEJ*<br /><br /></span></div>
<table class="items" width="100%" style="font-size: 9pt; border-collapse: collapse;" cellpadding="8">
<tr>
<td width="5%">A</td>
<td width="95%"><b>'.$a.'</b><br /><br /> '.$_POST['title'].'</td>
</tr>
Вот:
<tr>
<td width="5%">A</td>
<td width="95%"><b>'.$a.'</b><br /><br /> '.$_POST['title'].'</td>
</tr>
Попробуйте использовать фиксированное значение для ширины таблицы вместо процентов. что-то вроде:
<table class="items" width="950" style="font-size: 9pt; border-collapse: collapse;" cellpadding="8">
И посмотрим, что получится.
Трудно найти проблему, но ответ прост.
таблица со стилем = «overflow: wrap» после прочтения исходного кода:
elseif ($table['overflow']=='wrap')
Это поздний ответ, но стоит ответить сейчас. Я тоже столкнулся с такой же проблемой, когда у таблицы tr очень большой контент. Я попробовал приведенное ниже решение, но не повезло.
$ Mpdf-> shrink_tables_to_fit = 0;
Затем я изменил свою HTML-структуру из таблицы в div, но это работает. Так что теперь он работает отлично, и большой контент правильно распределяется между страницами, не перекрывая верхний и нижний колонтитулы. Надеюсь, это кому-нибудь поможет. ура