Написать переменную PHP с TCPDF - PullRequest
1 голос
/ 04 августа 2010

Мне нужно сгенерировать PDF с TCPDF, моя информация поступает из базы данных, поэтому я должен писать переменные PHP.Я знаю, как это сделать.

Но я хочу написать CSS + xHTML (как пример, который я видел на сайте TCPDF), используя:

$html = <<<EOF

<style>
  <!-- My CSS -->
</style>

  <!-- My xHTML -->

EOF;

$pdf->writeHTML('$html', '');

У меня возникают ошибки при попытке открытьPDF.Я прочитал, что должен экранировать «$» с помощью «\».После этого у меня нет ошибок, но содержимое моих переменных не появляется в моем PDF.

РЕДАКТИРОВАТЬ:

@ Сарфраз: я не вижуКак я могу сделать это, если я делаю это, это не работает?

$html = <<<EOF

    <style>
      <!-- My CSS -->
    </style>

      <!-- My xHTML -->
      <span><?php echo $myVar; ?></span>

    EOF;

    $pdf->writeHTML('$html', '');

Ответы [ 4 ]

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

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

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

I: send the file inline to the browser.  
D: send to the browser and force a file download with the name given by name.  
F: save to a local file with the name given by name.  
S: return the document as a string.

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

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

по ссылке: http://www.akamarketing.com/blog/109-php-to-pdf-conversion-with-tcpdf.html

2 голосов
/ 04 августа 2010

Убедитесь, что до EOF; нет пробелов и отступов, в противном случае вы получите ошибку.

Также, если у вас есть какие-либо переменные в escape-синтаксисе heredoc, поместите их в {} как {$somevar}

1 голос
/ 30 января 2019

Вместо тегов EOF используйте одинарные (') или двойные кавычки ("), которые также помогут.

1 голос
/ 17 августа 2011

У меня была такая же проблема. Я получил решение, экспериментируя с вещами, о которых я сам говорил следующим образом:

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

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

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

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