【问题标题】:Why is dompdf not honoring the specified page size?为什么 dompdf 不遵守指定的页面大小?
【发布时间】: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-&gt;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 不会影响物理单位(例如厘米或英寸)
  • 您的问题是显示的实际页面大小错误,还是您试图填充页面空间并且元素正在分页?

标签: php pdf dompdf


【解决方案1】:

dompdf 使用points 作为测量单位。

您可以尝试一些online cm to point converters 来获得测量结果

所以尺寸:21cm 29.7cm;你可以试试

   $dompdf->setPaper([0,0,595.275590551,841.88976378])

【讨论】:

  • 如果这对你有帮助请回复..@Ejaz
猜你喜欢
  • 2018-08-12
  • 2016-01-21
  • 1970-01-01
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
相关资源
最近更新 更多