21xrx.com
2024-05-20 09:26:28 Monday
登录
文章检索 我的文章 写文章
使用Node.js Puppeteer实现100%的PDF生成
2023-07-23 20:18:12 深夜i     --     --
Node js Puppeteer PDF生成 实现 100%

Node.js是一个非常受欢迎的服务器端JavaScript运行环境,而Puppeteer是一个由Google开发的Node.js库,用于控制Headless Chrome或Chromium浏览器,用于生成PDF文件。使用Puppeteer,我们可以通过编写JavaScript代码实现完全自动化的PDF生成。

PDF是一种非常常见且广泛使用的文件格式,在很多场景下都有重要的作用。Puppeteer提供了一种简单而强大的方法来生成PDF文件,无论是将网页转换为PDF,还是通过HTML和CSS创建自定义的PDF。由于Puppeteer使用了Chrome浏览器作为其引擎,所以生成的PDF完全符合标准,并且与通过其他方式生成的PDF文件没有任何区别。

下面是一个使用Node.js Puppeteer生成PDF的简单示例:


const puppeteer = require('puppeteer');

(async () => {

  const browser = await puppeteer.launch();

  const page = await browser.newPage();

  

  await page.goto('https://example.com');

  

  await page.pdf( format: 'A4' );

  

  await browser.close();

})();

上述代码创建了一个新的浏览器实例,然后打开了一个新页面,并导航到了"https://example.com"网站。之后,它通过调用page.pdf方法生成了一个名为"example.pdf"的PDF文件,使用了A4纸张大小。最后,浏览器实例被关闭。

除了从网页生成PDF之外,Puppeteer还可以让我们使用自定义的HTML和CSS创建PDF文件。例如,我们可以使用Puppeteer的页面函数来创建自定义HTML,并使用page.setContent方法将其设置为页面的内容。然后,我们可以使用相同的page.pdf方法将其转换为PDF文件。


const puppeteer = require('puppeteer');

(async () => {

  const browser = await puppeteer.launch();

  const page = await browser.newPage();

  

  const customHTML = `

    <html>

    <head>

      <title>Custom PDF</title>

      <style>

        body

          background-color: #f0f0f0;

          font-family: Arial

        

        h1

          color: #333333;

          text-align: center;

        

        

        p

          color: #666666;

          font-size: 14px;

        

      </style>

    </head>

    <body>

      <h1>Hello, World!</h1>

      

      <p>This is a custom PDF generated using Puppeteer.</p>

    </body>

    </html>

  `;

  

  await page.setContent(customHTML);

  

  await page.pdf( format: 'A4' );

  

  await browser.close();

})();

上述示例创建了一个自定义的HTML页面,其中包含一个标题和一段文本。通过设置相应的CSS样式,我们可以自定义HTML页面的外观。然后,使用page.setContent方法将自定义HTML的内容设置为页面的内容。最后,使用page.pdf方法将其转换为PDF文件。

通过使用Node.js Puppeteer,我们可以轻松实现100%的PDF生成,无论是从网页还是自定义HTML。Puppeteer的强大功能和简单易用的API使得PDF生成变得非常简单和高效。无论是生成报告、合同还是其他类型的文档,使用Puppeteer都可以满足大部分PDF生成的需求。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复