TCPDF: не может сгенерировать файл PDF из ввода HTML - PullRequest
0 голосов
/ 07 января 2019

Я работаю над простым PHP-кодом, который собирает данные из базы данных сотрудников и преобразует их в красивое резюме в формате PDF (с TCPDF ). Поскольку создание макета непосредственно в PHP довольно болезненно, я думаю, что делать макет в HTML и передавать его в PHP проще, что показано в этом примере .

Так что это мое резюме. enter image description here

И это источник:

<html>
<head>
<title>Resume</title>
</head>

<body>
<img src="umbrella_logo.jpg">

<p align="left">
<b>Armin Hoffman</b>
<br>
UI/UX Designer
</p>

<table style="width:100%">
  <tr>
    <th align="left"><img src="blank_small.jpg">Profile</th>
  <tr>
    <td alignt="left">Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles, weebly ning heekya handango imeem plugg dopplr jibjab, movity jajah plickers sifteo edmodo ifttt zimbra. Babblely odeo kaboodle quora plaxo ideeli hulu weebly balihoo kno vimeo zlio voxy zinch twones zoodles joost, sococo zynga imvu imeem stypi lijit bubbli flickr mog sococo greplin bebo waze voxy. Spotify kno diigo sifteo dropio sococo chegg meevee empressr kosmix groupon handango, cloudera mzinga chartly plickers loopt xobni airbnb prezi.</td>
  </tr>
</table>

<br>

<img src="blank_small.jpg"><b>Experience</b></img>
<table>
  <tr>
    <th>Red Design Limited, San Diego, CA 91232</th>
    <th>Professional UI/UX Designer</th>
  </tr>
  <tr>
    <td>April 2009 - May 2013</td>
    <td rowspan="2"><ul style="font-size:11pt;list-style-type:img|png|2|2|logo_example.png">
    <li>Sold over 100 large interface design with word press, CSS 3 & HTML 5 coding</li>
    <li>Extended design software research and web analysis, design & application</li>
    <li>Designed multitasking web research and multiple print for official uses</li>
    <li>User experience designer along with HTML 5, Word press, SEO, CSS 3, Java</li>
<ul>
</td>
  </tr>
</table>

<table>
  <tr>
    <th>Matrix Media Limited, San Diego, CA 41262</th>
    <th>Senior Web Designer</th>
  </tr>
  <tr>
    <td>Feb 2007 - Nov 2009</td>
    <td rowspan="2"><ul style="font-size:11pt;list-style-type:img|png|2|2|logo_example.png">
    <li>Made over 500 large interface design with word press, CSS 3 & HTML 5 coding</li>
    <li>Extended design software research and web analysis, design & application</li>
    <li>Designed multitasking web research and multiple print for official uses</li>
    <li>User experience designer along with HTML 5, Word press, SEO, CSS 3, Java</li>
<ul>
</td>
  </tr>
</table>


</body>
</head>

Затем скомбинируйте его с PHP, например:

    <?php

require_once('tcpdf/config/lang/eng.php');
require_once('tcpdf/tcpdf.php');

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

// set document information
$pdf->SetCreator(PDF_CREATOR);
$pdf->SetAuthor('Nicola Asuni');
$pdf->SetTitle('TCPDF Example 006');
$pdf->SetSubject('TCPDF Tutorial');
$pdf->SetKeywords('TCPDF, PDF, example, test, guide');

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 006', PDF_HEADER_STRING);

// set header and footer fonts
$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

// set default monospaced font
$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

// set margins
$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

// set auto page breaks
$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

// set image scale factor
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); 

// set font
$pdf->SetFont('dejavusans', '', 10);

// add a page
$pdf->AddPage();

$html = <<<EOF
<img src="umbrella_logo.jpg">

<p align="left">
<b>Armin Hoffman</b>
<br>
UI/UX Designer
</p>

<table style="width:100%">
  <tr>
    <th align="left"><img src="blank_small.jpg">Profile</th>
  <tr>
    <td alignt="left">Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles, weebly ning heekya handango imeem plugg dopplr jibjab, movity jajah plickers sifteo edmodo ifttt zimbra. Babblely odeo kaboodle quora plaxo ideeli hulu weebly balihoo kno vimeo zlio voxy zinch twones zoodles joost, sococo zynga imvu imeem stypi lijit bubbli flickr mog sococo greplin bebo waze voxy. Spotify kno diigo sifteo dropio sococo chegg meevee empressr kosmix groupon handango, cloudera mzinga chartly plickers loopt xobni airbnb prezi.</td>
  </tr>
</table>

<br>

<img src="blank_small.jpg"><b>Experience</b></img>
<table>
  <tr>
    <th>Red Design Limited, San Diego, CA 91232</th>
    <th>Professional UI/UX Designer</th>
  </tr>
  <tr>
    <td>April 2009 - May 2013</td>
    <td rowspan="2"><ul style="font-size:11pt;list-style-type:img|png|2|2|logo_example.png">
    <li>Sold over 100 large interface design with word press, CSS 3 & HTML 5 coding</li>
    <li>Extended design software research and web analysis, design & application</li>
    <li>Designed multitasking web research and multiple print for official uses</li>
    <li>User experience designer along with HTML 5, Word press, SEO, CSS 3, Java</li>
<ul>
</td>
  </tr>
</table>
EOF;

// output the HTML content
$pdf->writeHTML($html, true, false, true, false, '');

$pdf->lastPage();

// ---------------------------------------------------------

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

?>

PHP показывает это сообщение об ошибке:

Примечание: неопределенный индекс: строки в C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 16923

Предупреждение: array_push () ожидает, что параметр 1 будет массивом, значение NULL указано в C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 16925

Примечание: неопределенный индекс: столбцы в C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 16477

Примечание: неопределенный индекс: thead in C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 16492

Примечание: неопределенный индекс: thead in C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 16505

Примечание: неопределенная переменная: cellspacingx in C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 18121

Примечание: неопределенная переменная: ячейка в C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 18188

Примечание: неопределенная переменная: пространство ячеек в C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 18214

Примечание: неопределенная переменная: cellspacingx in C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 18269

Предупреждение. В foreach () указан неверный аргумент C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 19508

Предупреждение: count (): параметр должен быть массивом или объектом, который реализует Countable в C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php по линии 19537

Предупреждение. В foreach () указан неверный аргумент C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php в строке 19540

Примечание: неопределенный индекс: old_cell_padding in C: \ XAMPP \ htdocs \ resumebuilder \ tcpdf \ tcpdf.php на линии TCPDF 19750 года ОШИБКА: некоторые данные уже выведены, невозможно отправить файл PDF

Я полагаю, что у writeHTML () нет действительно способного HTML-парсера? Как это исправить?

...