Dompdf 在其他 html 元素之上书写 - Laravel 6 - PHP 8
Dompdf is writing on top of other html elements - Laravel 6 - PHP 8
我正在编写一个函数,使用 Dompdf 在 Laravel 6 项目中使用 Dompdf 创建和显示 pdf 文件 PHP8。我尝试了很多教程,甚至 GitHub 的官方文档也尝试了正常的 Dompdf version and it's wrapper for Laravel。这是我的 pdf 生成器函数代码:
private function generate_pdf(){
$html = '
<html>
<body>
<h1>Hello Dompdf</h1>
<h2>MDF</h2>
</body>
</html>
';
$pdf = PDF::loadHTML($html);
return $pdf->stream('welcome.pdf');
}
它工作正常,但这是函数的结果:
如您所见,元素相互重叠。我寻找答案,但找不到任何相关内容。有人知道为什么会这样吗?
如果有人再次遇到这个问题,我找到了解决方案,这是最糟糕的解决方案:
private function generate_pdf(){
$html = '
<html>
<body>
<h1>Hello Dompdf</h1><br/><br/>
<h2>MDF</h2>
</body>
</html>
';
$pdf = PDF::loadHTML($html);
return $pdf->stream('welcome.pdf');
}
只需在每个元素中添加
个元素即可得到正确的 space。这是一个令人讨厌的解决方案,但它确实有效。
问题是与 PHP 8
本身的兼容性。我有同样的问题,降级到 PHP 7.4 在我的服务器上工作。不确定不兼容性可能在哪里,但在更新到 PHP 8.0
后立即 DOMPDF
停止正确解释 HTML 并开始将项目放在彼此之上。
我正在编写一个函数,使用 Dompdf 在 Laravel 6 项目中使用 Dompdf 创建和显示 pdf 文件 PHP8。我尝试了很多教程,甚至 GitHub 的官方文档也尝试了正常的 Dompdf version and it's wrapper for Laravel。这是我的 pdf 生成器函数代码:
private function generate_pdf(){
$html = '
<html>
<body>
<h1>Hello Dompdf</h1>
<h2>MDF</h2>
</body>
</html>
';
$pdf = PDF::loadHTML($html);
return $pdf->stream('welcome.pdf');
}
它工作正常,但这是函数的结果:
如您所见,元素相互重叠。我寻找答案,但找不到任何相关内容。有人知道为什么会这样吗?
如果有人再次遇到这个问题,我找到了解决方案,这是最糟糕的解决方案:
private function generate_pdf(){
$html = '
<html>
<body>
<h1>Hello Dompdf</h1><br/><br/>
<h2>MDF</h2>
</body>
</html>
';
$pdf = PDF::loadHTML($html);
return $pdf->stream('welcome.pdf');
}
只需在每个元素中添加
个元素即可得到正确的 space。这是一个令人讨厌的解决方案,但它确实有效。
问题是与 PHP 8
本身的兼容性。我有同样的问题,降级到 PHP 7.4 在我的服务器上工作。不确定不兼容性可能在哪里,但在更新到 PHP 8.0
后立即 DOMPDF
停止正确解释 HTML 并开始将项目放在彼此之上。