Node JS Html-pdf:为第一页和最后一页创建不同的页眉

时间:2018-02-05 10:34:45

标签: node.js pdf npm node-html-pdf

我是节点js中的新手,我想为节点js中的第一页和最后一页使用不同的页眉和页脚,

我正在使用html-pdf模块,当我使用与他们提供的相同的代码时,该模块无效。

请查看代码

var fs = require('fs');
var pdf = require('html-pdf');
var html = fs.readFileSync('test.html', 'utf8');
var options = { format: 'Letter' };

pdf.create(html, options).toFile('businesscard.pdf', function(err, res) {
  if (err) return console.log(err);
  console.log(res); // { filename: '/app/businesscard.pdf' }
});

参考链接:https://www.npmjs.com/package/html-pdf

当我使用下面的代码时它只能在最后一页上使用它也可以打印到中间页面。

<div id="pageHeader-last">Header on last page</div>
...
<div id="pageFooter-last">Footer on last page</div>

3 个答案:

答案 0 :(得分:2)

您可以将html-pdf用于节点https://www.npmjs.com/package/html-pdf  它在html-pdf版本2.1.0中工作 您可以通过 npm install html-pdf@2.1.0 安装它 最新版本(2.2.0)存在一些问题

答案 1 :(得分:0)

我不知道html-pdf,但我们使用phantomjs,我们可以使用不同的页眉/页脚。

答案 2 :(得分:0)

html-pdf基本上是phantomJS的包装器,对于某些pdf生成非常方便。如果您想要使用它,那么值得深入了解。你可以从javascript端调整页眉和页脚的数量有限制,例如,不修改node-html-pdf使用的脚本或自己调用phantomJS。

有时使用node-pdftk从较小的PDF文件组装PDF比使用node-html-pdf或phantomJS在一次通过中执行所需的操作更容易。

html-pdf在pdf_a4_portrait.js

中设置页眉和页脚
function createSection (section, content, options) {
...
      if (pageNumFinal === 1 && !html) html = o.first || c.first
      if (numPagesFinal === numPages && !html) html = o.last || c.last
      return (html || o.default || c.default || '')
        .replace(/{{page}}/g, pageNumFinal)
        .replace(/{{pages}}/g, numPagesFinal) + content.styles
...
}