如何在node.js中生成PDF

时间:2013-06-14 09:57:41

标签: node.js pdf pdf-generation phantomjs

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

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

3 个答案:

答案 0 :(得分: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();
            });
        });
    });
});

答案 1 :(得分:2)

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

  

Puppeteer是一个节点库,它提供高级API来控制DevTools Protocol上的Chrome或Chromium。 Puppeteer默认运行headless,但可以配置为运行完整(无头)的Chrome或Chromium。

您可以使用page.pdf()轻松生成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();
})();

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

node puppeteer.js

答案 2 :(得分:1)

另一种方法,从头开始使用PDFKit ...

使用Express https://blog.koenvangilst.nl/generating-a-pdf-with-express/生成PDF

PDFKit,主页https://pdfkit.org/

pdfkit,npm页https://www.npmjs.com/package/pdfkit