如何在node.js中生成PDF

Hom*_*ork 6 pdf pdf-generation node.js phantomjs

我想生成一个模块,它将输入作为我的发票生成PDF,并将PDF文件自动发送到客户端邮件ID.在第一步,我得到了一些代码并尝试生成PDF.该代码正在运行fin,我能够生成PDF.但我无法打开文件.

代码我使用此链接:http://github.com/marak/pdf.js/

Had*_*uli 9

安装http://phantomjs.org/并安装幻像节点模块https://github.com/amir20/phantomjs-node

这是渲染pdf的示例

var phantom = require('phantom');

phantom.create().then(function(ph) {
    ph.createPage().then(function(page) {
        page.open("http://www.google.com").then(function(status) {
            page.render('google.pdf').then(function() {
                console.log('Page Rendered');
                ph.exit();
            });
        });
    });
});
Run Code Online (Sandbox Code Playgroud)


Gra*_*ler 6

您可以使用Puppeteer(Headless Google Chrome Node API)生成 PDF:

Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过DevTools Protocol控制 Chrome 或 Chromium 。Puppeteer默认运行无头,但可以配置为运行完整(非无头)Chrome 或 Chromium。

您可以使用以下方法轻松生成 PDF page.pdf()

'use strict';

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();

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

  await page.pdf({
    path: 'example.pdf',
  });

  await browser.close();
})();
Run Code Online (Sandbox Code Playgroud)

然后你可以直接从 Node.js 执行该程序:

node puppeteer.js
Run Code Online (Sandbox Code Playgroud)