【问题标题】:Customized width and height in DOMPDFDOMPDF中的自定义宽度和高度
【发布时间】:2017-01-16 19:40:06
【问题描述】:

我是否可以设置生成的 PDF 的宽度和高度?我想自定义 PDF 的宽度和高度。通常它会在一张短证券纸上,但我该如何定制呢?例如,我希望它的大小为 200 x 500 像素?

任何想法将不胜感激!干杯!

【问题讨论】:

  • 由于 DOMPDF 非常慢,我建议您尝试更好更快的替代方案,例如 wkhtmltopdf
  • 在我们正在开发的当前系统上,我们使用的是 DOMPDF,所以我必须适应。感谢您的建议,虽然我记不住这个

标签: php dompdf


【解决方案1】:

您可以通过在调用 DOMPDF::set_paper() 时传递一个数组来设置自己的格式,而无需更改 DOMPDF 代码。确保它包含以磅为单位的宽度和高度,如下所示:

$dompdf->set_paper(array(0, 0, 595, 841), 'portrait');

【讨论】:

  • 你知道数组的前两个值是什么吗?
  • 我不知道他们为什么这样做,但 4 个值一起用于计算宽度和高度。像这样:$width = $size[2] - $size[0]$height = $size[3] - $size[1]。所以最简单的方法就是让前 2 个值为 0。这也是他们使用所有预定义页面格式的方式。
  • 这是绘制矩形时常用的格式:[x1,y1, x2,y2]。正如 Michiel 所说,您应该将前两个值保持为零:0,0
  • 我知道它可以工作,但是如何使它以厘米而不是像素为单位?
  • 将像素转换为厘米并在css中使用,例如:@page { size: 10cm 10cm; }
【解决方案2】:

DOMPDF 通过配置处理纸张大小。

define ("DOMPDF_DEFAULT_PAPER_SIZE", "letter");

您可以在此处引用所有可用的尺寸:

https://github.com/dompdf/dompdf/blob/2eaf8fe0f1c95ab76e7a428a39a54dd240e2b2ec/src/Adapter/CPDF.php#L40

【讨论】:

  • 如果我想自定义它的大小怎么办?我有办法吗?
  • 只需将其添加到列表中:CPDF_Adapter::$PAPER_SIZES['mysize'] = array(0, 0, …, …);
  • 它确实有效。非常感谢你..但是当我试图让它更小时,文字变得更大。如何设置文本大小? ^^
  • 根据您的纸张尺寸,生成的 PDF 的宽度/高度是否正确?
  • 我真的不知道。重要的是尺寸会发生变化,因此稍后会修复其中的一些。谢谢你!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-26
  • 2013-12-07
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多