javascript - 如何合并多个网页并将其转换为 pdf 格式?

标签 javascript node.js pdf puppeteer

使用 puppeteer 填写表单后,我得到了多个页面。我目前正在使用 puppeteer 的“page.printToPDF”api 来获取 pdf 格式的网页,但问题是我有多个页面,我想将所有页面合并起来并获得一个 pdf 格式。无论如何,我可以用 puppeteer 和 javascript 来实现这一点吗?

最佳答案

这里有一个替代解决方案,有很多用于合并 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);

这完全取决于您如何利用您的资源。

关于javascript - 如何合并多个网页并将其转换为 pdf 格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48641218/

相关文章:

javascript - 使用现有数组的唯一连接值从现有数组创建新数组

node.js - 将sails.js 与现有的postgres 数据库一起使用

javascript - 为什么我的 POST 请求没有通过 nginx 获得 proxy_passed 到我的 nodejs 应用程序?

javascript - 用于 Node 邮件程序的客户端 ID、客户端 key 和刷新 token 的 XOAuth2 gmail

javascript - 如何在一个 PDF 文件中导出两个数据表

pdf - 使用 Wget 从需要设置 cookie 的站点下载 PDF 文件

javascript - Firebase 托管 - 从未经身份验证的来源加载脚本

javascript - 使用 Material UI 中的 withWidth HOC

javascript - 如何不用javascript开发轮播

ios - 在 Swift 中创建 PDF : Create New Page Automatically