我想生成一个模块,该模块将通过将输入作为我的发票生成 PDF,并且该 PDF 文件会自动发送给客户的邮件 ID。在第一步中,我得到了一些代码并尝试生成 PDF。该代码运行正常,我能够生成 PDF。但我无法打开文件。
对于代码我使用这个链接:http: //github.com/marak/pdf.js/
我想生成一个模块,该模块将通过将输入作为我的发票生成 PDF,并且该 PDF 文件会自动发送给客户的邮件 ID。在第一步中,我得到了一些代码并尝试生成 PDF。该代码运行正常,我能够生成 PDF。但我无法打开文件。
对于代码我使用这个链接:http: //github.com/marak/pdf.js/
安装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();
});
});
});
});
您可以使用Puppeteer (Headless Google Chrome Node API) 生成 PDF:
Puppeteer 是一个 Node 库,它提供了一个高级 API 来通过DevTools 协议控制 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();
})();
然后你可以直接从 Node.js 执行程序:
node puppeteer.js
另一种方法,使用 PDFKit 从头开始......
使用 Express https://blog.koenvangilst.nl/generating-a-pdf-with-express/生成 PDF
PDFKit,主页 https://pdfkit.org/
pdfkit,npm 页面 https://www.npmjs.com/package/pdfkit