Как просмотреть содержимое файла pdf перед созданием файла pdf с использованием mpdf - PullRequest
1 голос
/ 12 февраля 2020

Ссылка на мой JsFiddle ( Требуемый вывод )

Цель : HTML Я получаю именно то, что мне нужно в мой PDF, но когда я пытаюсь создать PDF с использованием библиотеки mPdf в моем контроллере codeigniter, вывод выглядит ужасно.

Проблема : я хочу найти способ отладить, что попадает внутрь этого PDF-файла и что приводит к неправильному выводу go. Я хочу увидеть сгенерированный HTML внутри PDF, прежде чем он станет файлом.

Мой PHP код для создания PDF :

$mpdf = new Mpdf();
$style1 = file_get_contents(base_url('public/admin/css/formstyles.css')); // external css
$style2 = file_get_contents(base_url('public/admin/bootstrap/css/bootstrap.min.css'));
$mpdf->WriteHTML($style1,\Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($style2,\Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($data['template'],\Mpdf\HTMLParserMode::HTML_BODY);
// I want to check the TOBE PDF output so that I can see what is wrong with my content here
$mpdf->Output($path.$company_id.'/'.$template_id.'.pdf', \Mpdf\Output\Destination::FILE); // opens in browser

Любая помощь приветствуется.

1 Ответ

1 голос
/ 12 февраля 2020

Если я вас понимаю, вы можете сделать это следующим образом (я проверил таким образом):

$mpdf = new Mpdf();
$style1 = file_get_contents(base_url('public/admin/css/formstyles.css')); // external css
$style2 = file_get_contents(base_url('public/admin/bootstrap/css/bootstrap.min.css'));
$mpdf->WriteHTML($style1,\Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($style2,\Mpdf\HTMLParserMode::HEADER_CSS);
$mpdf->WriteHTML($data['template'],\Mpdf\HTMLParserMode::HTML_BODY);

// capture the output into buffer
ob_start();
$mpdf->Output($path.$company_id.'/'.$template_id.'.pdf', \Mpdf\Output\Destination::FILE); // opens in browser

// holds the buffer into a variable
$html = ob_get_contents(); 
ob_get_clean();

// creates a html file with contents at root
file_put_contents('htmlFile.html', $html); 

И, если вы хотите увидеть вывод в браузере PDF, не создавая файл, то вы должны использовать следующий код:

$mpdf->Output($path.$company_id.'/'.$template_id.'.pdf', \Mpdf\Output\Destination::INLINE); // Sends output inline to browser

Или вы также можете использовать

$mpdf->Output($path.$company_id.'/'.$template_id.'.pdf', "I"); // Sends output inline to browser

Поэтому, когда вы изменяете что-либо из кода файла PDF, просто refre sh сгенерированный PDF в браузере, вы увидите изменения.

Здесь вы можете получить больше информации о шаблонах вывода mpdf https://mpdf.github.io/reference/mpdf-functions/output.html

...