我尝试使用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
也无济于事。
我已经用尽了我的搜索选项,但没有找到解决方案。任何帮助将不胜感激。谢谢。
更新
重复的问题没有得到接受的答案,并且两个答案之间的更好看是以下作为解决方案
$dompdf->set_paper(array(0, 0, 595, 841), 'portrait');
提供给DOMPDF::set_paper()
的数组参数只是点数A4
大小的替代表示。我已经尝试了它并且它不起作用。这里的实际问题是,无论如何设置纸张尺寸,PDF尺寸始终是其大小的152%。
更新2
我和#34; Kornel N&#34;有同样的问题。写在这个论坛帖子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
张的大小。但是,当我尝试绘制一个矩形来填充工作表(只是一个带有1px边框的div)时,我必须使其
791px x 1101px
大以匹配纸张大小。底部边框距离页面底部大约
20px
,但是如果我尝试增加div的高度,dompdf只会在文档中再添加一个空白页面,就像有一个看不见的底部边距用于div,或填充页面。没有这样的,因为我在css中设置它。@page { margin: 0in 0in 0in 0in;} .oldal{width:791px; height:1101px; border:1px solid red;}
请帮帮我,为什么会这样?这个尺寸是正确还是应该按照定义?
答案 0 :(得分:0)
dompdf
使用 points 作为度量单位。
你可以尝试一些online cm to point converters来测量
所以尺寸:21cm 29.7cm;你可以试试
$dompdf->setPaper([0,0,595.275590551,841.88976378])