Я пытаюсь использовать dompdf в моем компоненте Joomla 3, но PDf, который он создает для загрузки, всегда поврежден. Я открыл PDF-файл в текстовом редакторе и обнаружил, что причиной коррупции является то, что он включает в себя все заголовки, ссылки, таблицы стилей и javascript из joomla, хотя я ихорохо передаю html, который мне нужен.dompdf-> поток не работает в joomla
код, я использую в моей точки зрения Joomla составляющая (шаблон default.php) является:
<?php
defined('_JEXEC') or die('Restricted access');
ob_start();
?>
<div class="qp-div1">
<table class="table table-bordered">
<thead>
<tr>
<th colspan="2">Account Status</th>
</tr>
</thead>
<tbody>
<tr>
<th>Reference</th>
<td><?php echo $this->userdetails['cardcode']; ?></td>
... more html
<?php
require_once('dompdf/autoload.inc.php');
use Dompdf\Dompdf;
$html = ob_get_contents();
$dompdf = new Dompdf();
$dompdf->setPaper('A4', 'portrait');
$dompdf->setBasePath('');
$dompdf->loadHtml($html);
$dompdf->render();
$dompdf->stream('order');
ob_flush();
ob_end_clean();
?>
Хотя я проходил только HTML Я хотел dompdf-> loadHtml когда вы запускали DOMPDF -> stream, в конечном итоге, используя все joomla html, включая все таблицы стилей, javascript anf more.
Когда я использую dompdf-> output(), чтобы выгрузить вывод в файл, файл на самом деле хорошо, так что это только использование dompdf-> потока, у которого есть проблема.
Код я использовал, чтобы сбросить PDF был вставлен перед командой потока и выглядел следующим образом:
$file_to_save = '/temp/pdf/file.pdf';
file_put_contents($file_to_save, $dompdf->output());
$dompdf->stream('order');
Что я могу сделать, чтобы остановить команду $ dompdf-> поток с помощью includding все Joomla html?
Приветствия
Поток $ dompdf->() команда, вероятно, не является источником вашей проблемы. dompdf не завершает обработку скриптов после потока PDF. Как правило, вы увидите такие проблемы, если включена буферизация вывода. Я предполагаю, что либо 1) некоторый контент, не содержащий PDF, фиксируется в выходном буфере до того, как dompdf передает PDF; или 2) Joomla делает что-то после выполнения dompdf. Один из способов проверить это - очистить выходной буфер до рендеринга и выхода() после вызова метода потока. – BrianS