1

我是 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' }
});

参考链接: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>
4

2 回答 2

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)的一些问题

于 2018-02-09T13:16:22.010 回答
1

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
...
}
于 2018-03-18T21:23:32.127 回答