使用Puppeteer在Node.js中将网页转换为PDF文件

要使用Node.js将页面转换为PDF,你可以借助Puppeteer这个强大的库来实现。Puppeteer是一个Node库,它提供了一个高级API来通过DevTools协议控制Chromium或Chrome浏览器,从而实现生成页面PDF、进行UI测试等多种操作。

图片[1]_使用Puppeteer在Node.js中将网页转换为PDF文件_知途无界

以下是使用Puppeteer将页面转换为PDF的基本步骤和代码示例:

1. 安装Puppeteer

首先,你需要确保你的系统中已经安装了Node.js。然后,你可以通过npm(Node Package Manager)来安装Puppeteer。在你的项目根目录下,打开命令行工具并执行以下命令:

npm install puppeteer
npm install puppeteer
npm install puppeteer

2. 编写代码

接下来,你可以编写一个JavaScript脚本来控制Puppeteer生成PDF。以下是一个简单的示例:

const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch(); // 启动浏览器实例
const page = await browser.newPage(); // 创建一个新的页面对象
// 设置视口大小(可选)
await page.setViewport({
width: 1920,
height: 1080,
});
// 导航到要转换为PDF的页面
await page.goto('http://example.com', { waitUntil: 'networkidle2' });
// 生成PDF
const pdf = await page.pdf({
path: 'output.pdf', // 输出文件的路径
format: 'A4', // 纸张大小,默认为'A4'
// 其他可选参数,如边距、打印背景等
});
// 关闭浏览器实例
await browser.close();
console.log('PDF生成成功!');
})();
const puppeteer = require('puppeteer');  
  
(async () => {  
  const browser = await puppeteer.launch(); // 启动浏览器实例  
  const page = await browser.newPage(); // 创建一个新的页面对象  
  
  // 设置视口大小(可选)  
  await page.setViewport({  
    width: 1920,  
    height: 1080,  
  });  
  
  // 导航到要转换为PDF的页面  
  await page.goto('http://example.com', { waitUntil: 'networkidle2' });  
  
  // 生成PDF  
  const pdf = await page.pdf({  
    path: 'output.pdf', // 输出文件的路径  
    format: 'A4', // 纸张大小,默认为'A4'  
    // 其他可选参数,如边距、打印背景等  
  });  
  
  // 关闭浏览器实例  
  await browser.close();  
  
  console.log('PDF生成成功!');  
})();
const puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch(); // 启动浏览器实例 const page = await browser.newPage(); // 创建一个新的页面对象 // 设置视口大小(可选) await page.setViewport({ width: 1920, height: 1080, }); // 导航到要转换为PDF的页面 await page.goto('http://example.com', { waitUntil: 'networkidle2' }); // 生成PDF const pdf = await page.pdf({ path: 'output.pdf', // 输出文件的路径 format: 'A4', // 纸张大小,默认为'A4' // 其他可选参数,如边距、打印背景等 }); // 关闭浏览器实例 await browser.close(); console.log('PDF生成成功!'); })();

3. 运行脚本

保存你的JavaScript脚本文件(例如命名为generate-pdf.js),然后在命令行中运行它:

node generate-pdf.js
node generate-pdf.js
node generate-pdf.js

运行完毕后,你应该会在你的项目根目录下看到一个名为output.pdf的文件,这就是你从http://example.com页面生成的PDF文件。

注意事项

  • Puppeteer默认以无头模式(headless mode)运行,这意味着它不会显示图形界面。如果你需要看到浏览器窗口的操作过程,可以将puppeteer.launch()headless选项设置为false
  • page.goto()waitUntil选项可以设置为不同的值来控制页面何时被视为“加载完成”。在这个例子中,我们使用了'networkidle2',它表示网络请求少于或等于2个时被视为页面加载完成。
  • page.pdf()方法返回的是一个Buffer对象,你可以将其保存到文件中,或者将其发送到其他位置。在这个例子中,我们直接将其保存为一个PDF文件。
© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞79 分享
The failures and reverses which await men - and one after another sadden the brow of youth - add a dignity to the prospect of human life, which no Arcadian success would do.
尽管失败和挫折等待着人们,一次次地夺走青春的容颜,但却给人生的前景增添了一份尊严,这是任何顺利的成功都不能做到的
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容