【问题标题】:dompdf: white margin on A4 pagedompdf:A4 页面上的白边距
【发布时间】:2016-12-29 08:37:57
【问题描述】:

我正在使用 dompdf(一个 PHP 库)来创建 PDF 页面,但在设置适当的尺寸时遇到了问题。当我使用 CSS 属性时:

@page {
    size: 21cm 29.7cm; 
}

...例如,我想让页面的上半部分为红色,PDF 文件没问题,但打印后我得到了白边。我该如何解决?

【问题讨论】:

  • 您好 nolbadi111,欢迎来到 Stack Overflow。您能否更详细地解释一下印刷出了什么问题?例如,是否可以edit该问题包含pdf输出和打印输出的图像,以进行比较?
  • 打印到物理纸后?在这种情况下,问题可能是由实际的打印机布局设置引起的,这些设置添加到 PDF 的可见部分。

标签: php html css dompdf


【解决方案1】:

您已设置页面大小,但未设置内容边界。如果您不希望页面上有任何边框,则必须将页边距设置为 0。

@page {
  size: 21cm 29.7cm;
  margin: 0;
}

这会删除正文周围的边距,但这也意味着您的内容会撞到页面边缘。如果您希望正文内容与边缘有一些间距,请给它一些填充。

body {
  padding: .5in;
}

【讨论】:

  • 我试图使用宽度和高度,但尺寸是有效的。谢谢!
【解决方案2】:

诺巴迪111:

您是否使用 setPaper() 函数设置了正确的纸张尺寸?

// reference the Dompdf namespace
use Dompdf\Dompdf;

// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');

// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');

// Render the HTML as PDF
$dompdf->render();

// Output the generated PDF to Browser
$dompdf->stream();

参考:https://github.com/dompdf/dompdf

【讨论】:

  • 但我不确定它是否有效,因为当我输入“A3”或“肖像”时,我得到了相同的结果......
  • 好的,我在 css 中删除了“page”属性,现在“setPaper”函数可以工作了,但现在我在 pdf 文件中也有很大的余量。
  • dompdf 根据自己的标准生成边距。但是您可以在 css 中为您的 html 文件更改此行为。在 css 中添加以下规则:@page { margin-top: 0.3em;左边距:0.6em; }
【解决方案3】:

好的,所以问题不在于 domPDF,而在于打印机设置。要实现目标,您必须设置无边框属性。

顺便说一句。当你使用

$dompdf->setPaper('A4', 'landscape');

您不需要在 css 中设置页面大小属性(但它有助于在 html 中创建页面)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-04
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    相关资源
    最近更新 更多