gpt4 book ai didi

javascript - 将 HTML 转换为 PDF 分页

转载 作者:行者123 更新时间:2023-11-28 02:45:49 25 4
gpt4 key购买 nike

最近在做一个涉及html模板的功能。

这个函数的作用是生成一个动态模板,并将其转换成pdf。

到目前为止,我设法做到了这一点

var output = '';
async.each(input.contentInfo, function(component, next) {
renderTemplate(component, function(err, result){ //compile input and template together
output = output + result; //merge all component's html source code together
next();
});
}, function(err) {
conversion({ //phantom-html-to-pdf function from npm module
html: output,
paperSize: {
format: 'A8',
orientation: 'landscape',
margin: 0,
headerHeight: 0,
footerHeight: 0
}
}, function(err, pdf) {
var output = fs.createWriteStream('output.pdf');
pdf.stream.pipe(output);
});
});

假设这里一切正常,因为我没有在示例中显示任何错误检查。

现在,output 变量应该是这样的

<div style="page-break-before: always;">
<div style="position:absolute;left:100;top:100;>
Page 1 Content
</div>
</div>
<div style="page-break-before: always;">
<div style="position:absolute;left:100;top:100;>
Page 2 Content
</div>
</div>

由于 page-break CSS,我希望在 html 转换为 PDF 时看到的结果是 2 页,但在这种情况下,它不是。但是,如果在没有 position: absolute CSS 的情况下使用相同的输出,它会按我预期的那样工作,但 UI 不正确。

对于这种情况有什么解决方案可以同时满足这两个要求吗?

如果我解释情况不好,对此的任何帮助将不胜感激和抱歉。谢谢。

最佳答案

npm module文档指示我 this page ,其中关于“分页符”的部分是这样说的:

Css contains styles like page-break-before you can use to specify html page 
breaks. This can be used as well with phantom-pdf to specify page breaks
inside pdf files.

<h1>Hello from Page 1</h1>

<div style='page-break-before: always;'></div>

<h1>Hello from Page 2</h1>

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

<h1>Hello from Page 3</h1>

简短回答:尝试使用 page-break-before: always; 代替。

关于javascript - 将 HTML 转换为 PDF 分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46933494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com