如何合并多个网页并将它们转换为 pdf 格式?
How can I combine multiple webpages and get them as pdf?
我在用 puppeteer 填写表格后得到了多个页面。我目前正在使用 puppeteer 的 "page.printToPDF" api 将网页作为 pdf 格式获取,但问题是我有多个页面,我想将所有页面组合起来并获得一个 pdf。无论如何我可以用 puppeteer 和 javascript 来实现这个?
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
。有关转换的更多信息,请检查 link。 https://www.npmjs.com/package/html-pdf
这是一个替代解决方案,有很多用于合并 pdf 文件的包。
这里是您可以使用众多 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);
关键在于您如何利用您的资源。
我在用 puppeteer 填写表格后得到了多个页面。我目前正在使用 puppeteer 的 "page.printToPDF" api 将网页作为 pdf 格式获取,但问题是我有多个页面,我想将所有页面组合起来并获得一个 pdf。无论如何我可以用 puppeteer 和 javascript 来实现这个?
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
。有关转换的更多信息,请检查 link。 https://www.npmjs.com/package/html-pdf
这是一个替代解决方案,有很多用于合并 pdf 文件的包。
这里是您可以使用众多 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);
关键在于您如何利用您的资源。