【发布时间】:2016-01-22 20:52:54
【问题描述】:
我正在尝试使用 dompdf 版本 0.6.1(撰写本文时的最新版本)创建 PDF,并且卡在最初的步骤,即页面大小。我正在尝试创建A4 大小的PDF。以下是我的标记
$html = <<<HTML
<html>
<head>
<style>
@page {size: 21cm 29.7cm; margin: 0;}
</style>
</head>
<body>
testing
</body>
</html>
HTML;
$dompdf = new DOMPDF();
$dompdf->set_paper('a4', 'portrait');
$dompdf->load_html($html);
$dompdf->render();
$dompdf->stream("title.pdf");
PDF 已创建,但始终为32.07cm 宽。我试图通过覆盖DOMPDF_DPI 常量来使用 dompdf DPI 设置,但它只影响内容缩放,而不影响页面大小。将size CSS 属性值设置为a4 也无济于事。
我已经用尽了我的搜索选项,但还没有找到解决方案。任何帮助将不胜感激。谢谢。
更新
duplicate 问题没有可接受的答案,两个答案中更好看的答案有以下作为解决方案
$dompdf->set_paper(array(0, 0, 595, 841), 'portrait');
提供给DOMPDF::set_paper() 的数组参数只是A4 大小(以磅为单位)的另一种表示形式。我已经尝试过了,但它不起作用。这里的实际问题是,无论如何设置纸张大小,PDF 大小始终是它的 152%。
更新 2
我遇到了与“Kornel N”在此论坛帖子https://groups.google.com/forum/#!topic/dompdf/I_j6R4_9ZwA 中所写相同的问题
我最近切换到dompdf,我之前使用的是ufpdf。在使用表格创建一些发票时,我已经习惯了
A4文档的大小。现在,当我将纸张大小设置为
A4($dompdf->set_paper('a4', 'portrait');) 时,我得到了更大的区域。我用纸张大小扩展了
write_log方法,它说它是A4,因为我设置了它。
cpdf_adapter.cls.php文件指出A4的大小是595.28,841.89 points,因为我已经习惯了。当我用 pdf 阅读器软件打开生成的 pdf 时,它说它的大小是
8.27 x 11.69in,即A4表的大小。不过,当我尝试绘制一个矩形来填充工作表(只是一个 1 像素边框的 div)时,我必须将其设为
791px x 1101px大以匹配纸张大小。底部边框距页面底部约
20px,但如果我尝试增加 div dompdf 的高度,只需向文档添加一个空白页,就像有一个不可见的底部边距一样div,或页面的填充。没有这样的,因为我是在css中设置的。@page { margin: 0in 0in 0in 0in;} .oldal{width:791px; height:1101px; border:1px solid red;}请帮帮我,为什么会这样?这个尺寸可以吗?还是应该按照定义?
【问题讨论】:
-
@MateiMihai 感谢您的帮助,但“重复”问题的解决方案并不能解决我的问题。页面仍然是
32.07cmwide -
dompdf 的哪个版本?
-
@BrianS 我正在使用 dompdf 版本 0.6.1。
-
与您的问题无关,仅供参考,DPI 不会影响物理单位(例如厘米或英寸)
-
您的问题是显示的实际页面大小错误,还是您试图填充页面空间并且元素正在分页?