我正在使用PhantomJS从html创建PDF。
它工作正常,但我无法找到如何使用分页;我想在文档中为每个div创建一个页面,但是我在文档中找不到任何内容。关于分页。
如果我的文档很短,它只会生成一个页面,如果它更大,它会创建一个第二个空白页面,而我的内容会在第一页面中变得很长。
有什么想法吗? (我正在使用nodeJS的phantomJS节点模块)
答案 0 :(得分:45)
PhantomJS负责webkit的css实现。要实现手动分页符,您可以使用以下属性:
page-break-before
:auto / always / avoid /...page-break-inside
:auto / always / avoid /...page-break-after
:auto / always / avoid /...例如,div可以是:
<div style="page-break-before:always;"><!-- content --></div>
或
<div style="page-break-after:always;"> <!-- content --></div>
在Webkit中打印时控制分页符有时并不容易,特别是对于长html表。
答案 1 :(得分:4)
很晚,但我遇到了使用JsReport的“break-inside:avoid”问题,这些问题是通过将元素的显示类型更改为inline-block来修复的。更多信息: https://github.com/ariya/phantomjs/issues/10638
答案 2 :(得分:3)
您应该看到此issue有不同的提示。
尝试在您不想破解的元素中使用display:inline-block
因为分页符。其背后的原因是webkit已经尝试保护图像不被破坏。图像是内联块。
答案 3 :(得分:1)
分页工作正常:
var page = webPage.create();
page.paperSize = {
format: 'A4',
orientation: 'portrait',
margin: '1cm'
}
在此处查看文档http://phantomjs.org/api/webpage/property/paper-size.html