Bezdepbonusu7Программирование: статьи и ответы

Вопрос

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

Автор вопроса: HomeWorkОтветов: 3

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

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

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

pdfpdf-generationphantomjs

Ответы

Ответ 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

Ответ 3 · рейтинг 1 · PatrickReagan

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

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

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

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы