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

Node JS Html-pdf : create different header footer for first and last page

我是 node js 的新手,我想在 node 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' }
});

参考Link: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>

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

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

有时,使用 node-pdftk 从较小的 PDF 文件 assemble 生成 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
...
}