如何在PhantomJS中处理PDF分页



我正在使用PhantomJS从html创建pdf。

它工作得很好,但我不知道如何与分页工作;我想为文档中的每个div创建一个页面,但在文档中找不到任何内容。关于分页。

如果我的文档很短,它只创建一个页面,如果它更大,它创建第二个空页面,我的内容在第一页变得很长。

你知道吗?(我使用的是phantomJS-node模块的nodeJS)

PhantomJS负责webkit的css实现。要实现手动分页符,可以使用以下属性:

  • page-break-before: auto/always/avoid/…
  • page-break-inside: auto/always/avoid/…
  • page-break-after: auto/always/avoid/…

例如:

 <div style="page-break-before:always;"><!-- content --></div>

<div style="page-break-after:always;"> <!-- content --></div>

在Webkit中打印时控制分页符有时并不容易,特别是对于长html表。

非常晚,但是我在使用JsReport时遇到了"break-inside:avoid"的问题,通过将元素的显示类型更改为inline-block来修复。更多信息请点击这里:https://github.com/ariya/phantomjs/issues/10638

您应该在不同的提示中看到这个问题。

尝试在您不想中断的元素中使用display:inline-block,因为分页符。这背后的原因是webkit已经在尝试保护图像不被破坏。

使用:

 var page = webPage.create();
 page.paperSize = {
  format: 'A4',
  orientation: 'portrait',
  margin: '1cm'
 }

查看这里的文档http://phantomjs.org/api/webpage/property/paper-size.html

最新更新