Как предотвратить изменение размера таблицы в PDF с использованием mPDF и PHP?

У меня есть некоторые данные формы, и после отправки создается PDF. Проблема в размере таблиц в PDF. Если какая-то строка в моей форме слишком длинная, PDF генерируется неправильно. Это потому что таблицы. Они имеют статический размер, поэтому, если строка слишком длинная, таблица не может вместить ее. Я использую библиотеку mPDF.

Как я могу сделать динамику размеров этих таблиц, чтобы их размер изменялся в зависимости от длины строки?

Если строка {p} самая длинная, то ширина таблицы уменьшает размер таблицы. Я хочу, чтобы, если строка {p} была длиннее ширины таблицы, тогда {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>

2

Решение

Вот:

<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">

И посмотрим, что получится.

1

Другие решения

Трудно найти проблему, но ответ прост.
таблица со стилем = «overflow: wrap» после прочтения исходного кода:

elseif ($table['overflow']=='wrap')
0

Это поздний ответ, но стоит ответить сейчас. Я тоже столкнулся с такой же проблемой, когда у таблицы tr очень большой контент. Я попробовал приведенное ниже решение, но не повезло.

$ Mpdf-> shrink_tables_to_fit = 0;

Затем я изменил свою HTML-структуру из таблицы в div, но это работает. Так что теперь он работает отлично, и большой контент правильно распределяется между страницами, не перекрывая верхний и нижний колонтитулы. Надеюсь, это кому-нибудь поможет. ура

0
По вопросам рекламы [email protected]