如何组合多个网页并将其作为pdf格式?

时间:2018-02-06 10:51:41

标签: javascript node.js pdf puppeteer

我在用木偶操作者填写表格后有多个页面。我目前正在使用puppeteer的“page.printToPDF”api获取网页作为pdf,但问题是我有多个页面,我想将所有这些组合在一起并得到一个pdf。无论如何我可以通过puppeteer和javascript来实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

这是一个替代解决方案,有许多用于合并pdf文件的包。

enter image description here

以下是如何使用众多pdf合并软件包之一。

const PDFMerge = require('pdf-merge');
const files = [
    `${__dirname}/1.pdf`,
    `${__dirname}/2.pdf`
];
const finalFile = `${__dirname}/final.pdf`;

以下是如何打印多个页面然后合并它们的方法。

// goto first page and save pdf file
await page.goto('http://example1.com', {waitUntil: 'networkidle'});
await page.pdf({path: files[0], format: 'A4', printBackground: true})

// goto first page and save pdf file
await page.goto('http://example2.com', {waitUntil: 'networkidle'});
await page.pdf({path: files[1], format: 'A4', printBackground: true})

// merge two of them and save to another file
await PDFMerge(files, {output: finalFile);

关于如何利用资源的所有内容。

答案 1 :(得分:0)

var fs = require('fs');
var pdf = require('html-pdf');
var html = fs.readFileSync('https://www.google.co.in/', 'utf8');
var options = { 
  format: 'A4',
  "border": {
    "top": "0.2in",            // default is 0, units: mm, cm, in, px
    "bottom": "1in",
    "left": "0.1cm",
    "right": "0.1cm"
  },
};

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

在使用上述代码后,您必须安装html-pdf。有关转换检查链接的更多信息。 https://www.npmjs.com/package/html-pdf