DOMPDF中的打印边距

51

我正在尝试使用DOMPDF生成PDF文件。我有一些HTML内容,将其转换成PDF文件。

但是我遇到了一个问题。当我在页面顶部放置一个对象(例如一个图标)时,在PDF文件中也会显示在页面顶部。 但是当我打印PDF文件时,会有一个页边距。我知道必须有一个最小的页边距,但在我的情况下它太大了。 是否有一种方法可以在DOMPDF中控制这个页边距?

我正在尝试复制一个现有的文档,在原始文档中,标志不在页面顶部(PDF文件中已经有一个页边距)。但是当我打印时,它位于与我生成的PDF文件中完全相同的位置(PDF文件中没有页边距)。

是否有一个已设置打印页边距的PDF文档?


你难道没有混淆打印机边距(这是机械设置的,无法通过软件控制任何变量)和PDF边距吗?当你打印东西时,总会有一些轻微的边距。这很可能是某种故障保护措施,以防止打印机在纸张边界外墨水溢出。 - bakkerjoeri
2个回答

132
以下样式可以将文档的边距有效地设置为0:
@page { margin: 0px; }
body { margin: 0px; }

@page在dompdf 0.6.0中使用,body在dompdf 0.5.1中使用。您可以独立修改页面和正文的页边距,但现在两者的页边距一起充当内容边界。


1
很好的答案。顺便说一下,上面的“空格”错误是指下面的答案无法解析。请按照此答案中所示的代码进行操作。 - Tom McKenzie
在我的情况下,我还需要为 @page 设置 size,更多信息请见:https://dev59.com/MJrga4cB1Zd3GeqPhhRf#39088897。 - ᴍᴇʜᴏᴠ

28
有时你也需要设置。
html { margin: 0px}

2
使用dompdf,@page 与CSS中的 html 基本上是同义词。您不需要为 html 元素指定边距。如果您的@page规则不起作用,请检查您在 {@page} 和左花括号之间是否有空格(如我的答案)。在某些版本的dompdf中存在问题,如果缺少该空格,则@page样式会被删除 - BrianS
我在Google上搜索了3个小时,最终找到了解决方法。你就是男人中的神话! - samuraiseoul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接