我正在使用基于 html 表单输入和上传文件的 smarty 模板生成 php 页面。使用 dompdf,我想将生成的页面保存为 pdf 文件。
当用户提交 multipart/form-data 时,数据会发布到自己。然后进行验证过程。一切正常后,使用模板文件生成一个新页面。没有输出,相反,dompdf 利用模板文件流式传输 pdf 文件。在解决了“找不到 DOMPDF”、内存不足等问题的几个阶段后,我现在遇到了“无法流式传输 pdf:标头已发送”错误。
最常见的问题之一是在调用 stream() 之前存在换行符、空格或任何输出。我在 <?php 和 >? 之前和之后检查了空格。
也没有 print_f 或 echo 语句。如何解决此问题?问题出在哪里……在 smarty 模板文件或 php 文件本身?这是代码:
require_once("dompdf/dompdf_config.inc.php");
spl_autoload_register('DOMPDF_autoload');
$html = $smarty->fetch('index.tpl');
$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper('a4', 'portrait');
$dompdf->render();
$dompdf->stream("newfile.pdf");