我正在使用 PhantomJS 从 html 创建 PDF。
它工作正常,但我不知道如何使用分页;我想为文档中的每个 div 创建一个页面,但在文档中找不到任何内容。关于分页。
如果我的文档很短,它只制作一页,如果它更大,它会创建第二个空白页,我的内容在第一页,这变得很长。
任何的想法 ?(我正在为 nodeJS 使用 phantomJS-node 模块)
我正在使用 PhantomJS 从 html 创建 PDF。
它工作正常,但我不知道如何使用分页;我想为文档中的每个 div 创建一个页面,但在文档中找不到任何内容。关于分页。
如果我的文档很短,它只制作一页,如果它更大,它会创建第二个空白页,我的内容在第一页,这变得很长。
任何的想法 ?(我正在为 nodeJS 使用 phantomJS-node 模块)
PhantomJS 负责 webkit 的 css 实现。要实现手动分页符,您可以使用以下属性:
page-break-before
:自动/总是/避免/...page-break-inside
:自动/总是/避免/...page-break-after
:自动/总是/避免/...例如,一个 div 可以是:
<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