我希望生成一个模块,该模块将以我的发票作为输入生成PDF,并自动将该PDF文件发送到客户的电子邮件。在第一步中,我得到了一些代码并尝试生成PDF。那段代码运行良好,我能够生成PDF,但是我无法打开该文件。
我使用以下链接获取代码:http://github.com/marak/pdf.js/
我使用以下链接获取代码:http://github.com/marak/pdf.js/
安装 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();
});
});
});
});
你可以轻松地使用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
另一种方法是从头开始使用PDFKit......
使用Express生成PDF https://blog.koenvangilst.nl/generating-a-pdf-with-express/
PDFKit主页 https://pdfkit.org/
pdfkit,npm页面 https://www.npmjs.com/package/pdfkit