Как сгенерировать PDF в node.js

Я хочу создать модуль, который будет генерировать PDF-файл, принимая входные данные в качестве моего счета-фактуры, и этот PDF-файл автоматически отправляется клиенту по электронной почте. На первом этапе я получил код и попытался создать PDF. Этот код работает, и я могу создать PDF. но я не могу открыть файл.

для кода я использую эту ссылку: http://github.com/marak/pdf.js/


person HomeWork    schedule 14.06.2013    source источник
comment
По этой ссылке я использую github.com/marak/pdf.js, и я получаю решение для создать PDF ... но я столкнулся с одной проблемой, что PDF не может открыть. При открытии пишет какая-то ошибка... Пожалуйста, проверьте и предложите что-нибудь...   -  person HomeWork    schedule 17.06.2013
comment
Упомянутый проект github устарел - не используйте   -  person Kees de Kooter    schedule 01.02.2017


Ответы (3)


Установите 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();
            });
        });
    });
});
person Hadi Rasouli    schedule 14.06.2013
comment
Я пытаюсь использовать приведенный выше код, но я не могу добраться до sol. Пожалуйста, поделитесь здесь любой идеей ............ - person HomeWork; 14.06.2013
comment
Я хочу сгенерировать PDF-файл через Node.JS и отправить этот PDF-файл по почте. PLZ предлагает некоторые из них, которые могут дать что-то, что может потренироваться и дать лучшее решение.... - person HomeWork; 17.06.2013

Вы можете использовать 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
person Grant Miller    schedule 23.07.2018

Другой подход, начиная с нуля, используя PDFKit...

Создание PDF-файлов с помощью Express https://www.npmjs.com/package/pdfkit

PDFKit, домашняя страница https://www.npmjs.com/package/pdfkit

pdfkit, страница npm https://www.npmjs.com/package/pdfkit

person PatrickReagan    schedule 05.05.2020