📜  puppeeter pdf 桌面 - Javascript (1)

📅  最后修改于: 2023-12-03 14:45:41.663000             🧑  作者: Mango

Puppeteer PDF 桌面 - JavaScript

介绍

Puppeteer 是一个由 Google 官方维护的 Node.js 库,用于控制无头 Chrome 或 Chromium 浏览器。它提供了一组 API,可用于操作页面,例如生成 PDF 文件。

Puppeteer 的 pdf()方法可用于生成 PDF 文件,此方法使用浏览器的默认打印和布局引擎,支持自定义页面大小和打印选项。

安装

Puppeteer 可以通过 NPM 安装:

npm install puppeteer

安装完成后,使用以下代码创建一个新的 Puppeteer 实例:

const puppeteer = require('puppeteer');
const browser = await puppeteer.launch();

现在就可以使用 Puppeteer 操作页面了。

生成 PDF 文件

使用 Puppeteer 的 pdf() 方法生成 PDF 文件非常简单。以下是生成 PDF 文件的示例代码:

const puppeteer = require('puppeteer');

(async() => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.google.com');
  await page.pdf({ path: 'google.pdf' });

  await browser.close();
})();

该代码将在当前目录下生成一个名为“google.pdf”的文件,其中包含页面的 PDF 格式。

自定义 PDF 文件

Puppeteer 的 pdf()方法允许您控制生成 PDF 文件的各种选项。以下是所有可用选项的列表:

  • format:页面大小,默认为 A4
  • scale:页面缩放,默认为 1
  • displayHeaderFooter:显示页眉和页脚,默认为 false
  • headerTemplate:自定义页眉 HTML 模板
  • footerTemplate:自定义页脚 HTML 模板
  • printBackground:打印背景图像,默认为 false
  • landscape:页面取向,默认为 false
  • pageRanges:要打印的页面范围,默认为打印所有页面
  • preferCSSPageSize:使用 CSS 确定页面大小,默认为 false

以下是一个示例,演示如何使用 Puppeteer 的自定义选项生成 PDF 文件:

const puppeteer = require('puppeteer');

(async() => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://www.google.com');

  await page.pdf({
    path: 'google.pdf',
    format: 'Letter',
    printBackground: true,
    margin: {
      top: '20px',
      bottom: '40px',
      left: '20px',
      right: '20px'
    }
  });

  await browser.close();
})();

此代码将在当前目录下生成一个名为 “google.pdf”的文件,其中包含页面的 PDF 格式,页面大小为 Letter,包含背景图像,并设置了自定义页边距。

结论

Puppeteer 是一个功能强大的 Node.js 库,可用于控制无头 Chrome 浏览器,可用于生成 PDF 文件。该库提供了广泛的 API,易于使用,并且带有自定义选项,可使您轻松生成高质量的 PDF 文件。