Я хочу создать модуль, который будет генерировать PDF-файл, принимая входные данные в качестве моего счета-фактуры, и этот PDF-файл автоматически отправляется клиенту по электронной почте. На первом этапе я получил код и попытался создать PDF. Этот код работает, и я могу создать PDF. но я не могу открыть файл.
для кода я использую эту ссылку: http://github.com/marak/pdf.js/
Ответ 1 · рейтинг 9 · Hadi Rasouli
Установите 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();
});
});
});
});
Ответ 2 · рейтинг 4 · Grant Miller
Вы можете использовать Puppeteer (API безголового узла Google Chrome) для создания PDF-файлов:
Puppeteer - это библиотека Node, которая предоставляет API высокого уровня для управления Chrome или Chromium по DevTools Protocol а>. 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