TCPDF, значения переменных php не отображаются в сохраненном файле PDF - PullRequest
1 голос
/ 23 мая 2011

Я создал pdf с использованием TCPDF и заполнил его некоторыми переменными php и текущей датой с использованием синтаксиса heredoc

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

Я объявляю свои переменные вверху примерно так:

$name = $_POST['name'];
$score = $_POST['percentage'];
$ku_number = $_POST['ku-number'];
$date = Date('d - m - Y');

В сохраненном PDF-файле отображается только $ date.

Есть предложения?

Спасибо

Редактировать: код для передачи переменных в TCPDF

// Print a text
$html = <<<EOF
<!-- EXAMPLE OF CSS STYLE -->
<style>
table{
 text-align:center;
 color:#000;
}
</style>
<table id="name" cellpadding="0">
<tr>
<td width="10" height="80">&nbsp;</td>
<td width="620">&nbsp;</td>
<td width="10">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="620">$name</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="10">&nbsp;</td>
<td>&nbsp;</td>
<td width="10">&nbsp;</td>
</tr>
</table>

<table id="score" cellpadding="0" >
<tr>
<td width="10" height="180">&nbsp;</td>
<td width="620">&nbsp;</td>
<td width="10">&nbsp;</td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="620">$score</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="10" height="207">&nbsp;</td>
<td>&nbsp;</td>
<td width="10">&nbsp;</td>
</tr>
</table>

<table id="ku-number" cellpadding="0" >
<tr height="2">
<td width="50" height="2"></td>
<td width="620" height="2"></td>
<td width="10" height="2"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="620" height="20"></td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="50">&nbsp;</td>
<td>$ku_number</td>
<td >&nbsp;</td>
</tr>
</table>

<table id="date" cellpadding="0" >
<tr height="2">
<td width="50" height="2"></td>
<td width="620" height="2"></td>
<td width="10" height="2"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td width="420" height="20">$date</td>
<td>&nbsp;</td>
</tr>
<tr>
<td width="50">&nbsp;</td>
<td></td>
<td >&nbsp;</td>
</tr>
</table>

EOF;
$pdf->writeHTML($html, true, false, true, false, '');


//Close and output PDF document
$pdf->Output('certificate.pdf', 'I');

Ответы [ 3 ]

6 голосов
/ 16 августа 2011

У меня была такая же проблема.Я нашел решение, экспериментируя с упомянутыми мной словами:

Пожалуйста, используйте конкатенацию, чтобы разбить строку $ html на части.Это, безусловно, решит проблему.Например, я использовал что-то вроде этого:

$html = 'HTML CONTENT BREAKS HERE' . $variable_name . 'HTML CONTENT CONTINUES HERE' ;

Обычно большинство разработчиков используют переменную PHP в пределах значения $ html,

$html = 'HTML CONTENT echo php variable HTML CONTENT' ;

Надеюсь, это сработает.

0 голосов
/ 09 ноября 2012

Использование $ _SESSION для хранения переменных перед выводом PDF решило проблему

Кредиты идут на Юрий Стукен

0 голосов
/ 20 августа 2011

Для получения более точных результатов:

Вывод окончательного PDF: Когда вы закончили создание всех необходимых ячеек, изображений, ссылок, текста и т. Д., Вы должны вызвать метод Output (), чтобы действительно получить ваши рукина вашем динамически созданном PDF.Это может не принимать никаких параметров, и в этом случае PDF отправляется в браузер, чаще всего разработчики указывают имя файла и место назначения сгенерированного PDF.Назначением может быть одно из четырех значений:

I: отправить файл в браузер, встроенный в файл.

D: отправить в браузер и принудительно загрузить файл с именем, даннымname.

F: сохранить в локальном файле с именем, заданным именем.

S: вернуть документ в виде строки.

Вы видите, что мой код устанавливаетцелевое значение в виде F:

$pdf->Output(”./pdfs/example.pdf”, “F”);

по ссылке: this

Иметь БЛАГОРОДНУЮ ЖИЗНЬ!

...