您好,我在 Codeigniter 3 中使用 dompdf 将 html 转换为 pdf,当我下载 pdf 并在 pdf 阅读器浏览器中打开时,会显示 pdf。
但是当我在 adobe acrobat 中打开 pdf 时,pdf 只显示空白页
这是我的代码:
$html = $this->load->view('viewhtml', $data, TRUE);
//echo $html;
$dompdf = new Dompdf();
$dompdf->loadHtml($html);
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'portrait');
// Render the HTML as PDF
$dompdf->render();
$dompdf->getCanvas()->get_cpdf()->setEncryption("1234");
// Output the generated PDF to Browser
$dompdf->stream("name.pdf", array("Attachment" => false));
exit(0);
我不知道出了什么问题,有人可以帮助我吗。
编辑:当我在不同的pdf阅读器中打开pdf时,会显示pdf
https://drive.google.com/file/d/1dE7Rdjv-KWCumj6MOAxereM7mmG3XwnX/view?usp=share_link
如果您想在 adobe acrobat 中查看,这是我的 pdf 文件。 (通行证:1234)
检查提供的示例 PDF,发现文件中嵌入的 DejaVuSans 字体的 CIDSystemInfo 条目已损坏:
11 0 obj
<</Registry ‘7_wá
/Ordering ‘#x.<
/Supplement 0
>>
Registry 和 Ordering 的值应该是字符串,但在这里它们完全被破坏了(即使在加密文档中,字符串也必须正确分隔)。
此错误已在 2020 年 3 月的 dompdf pull request 2114 中得到修复,这确实是@Olivier 在对您的问题的评论中指出的 dompdf 问题 2060 的修复。
因此,请将您的 dompdf 版本更新为包含上述拉取请求的状态。