如何在node.js中生成PDF

8
我希望生成一个模块,该模块将以我的发票作为输入生成PDF,并自动将该PDF文件发送到客户的电子邮件。在第一步中,我得到了一些代码并尝试生成PDF。那段代码运行良好,我能够生成PDF,但是我无法打开该文件。
我使用以下链接获取代码:http://github.com/marak/pdf.js/

3个回答

10

安装 http://phantomjs.org/,然后安装phantom node模块 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();
            });
        });
    });
});

我尝试了上面的代码,但是我无法到达解决方案。请在这里分享任何想法............ - HomeWork
我想要通过Node.JS生成PDF文件并通过邮件发送该PDF文件...请推荐一些程序,能够提供可行的解决方案并给出更好的解决方案... - HomeWork

6
你可以使用 Puppeteer (无头 Google Chrome Node API)生成 PDF 文件:

Puppeteer 是一个基于 Node 的库,提供了一个高层次的 API 来控制 Chrome 或 Chromium 上的 DevTools Protocol。默认情况下,Puppeteer 运行时是 headless 的,但也可以配置为运行完整版(非 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

这并没有解释如何从模板生成PDF。 - undefined

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接