Для создания генерации PDF-файлов в Node.js с использованием Express, вы можете использовать библиотеку pdfmake
. Эта библиотека предоставляет простой способ создания PDF-документов с помощью JavaScript. Вот пошаговое руководство по созданию генерации PDF в Express с использованием pdfmake
:
Шаг 1: Установите зависимость
Установите пакет pdfmake
с помощью npm:
npm install pdfmake
Шаг 2: Создание маршрута
Создайте маршрут для генерации PDF. В файле app.js
или index.js
, добавьте следующую строку, чтобы импортировать pdfmake
:
const pdfMake = require('pdfmake');
Затем создайте маршрут, который будет обрабатывать запрос на генерацию PDF:
app.get('/generate-pdf', (req, res) => { // Здесь будет код для генерации PDF });
Далее, внутри маршрута, вы можете создать документ PDF с помощью pdfmake
. Создайте объект pdfMake.createPdf(docDefinition)
и передайте в него определение документа:
app.get('/generate-pdf', (req, res) => { const docDefinition = { content: [ 'Привет, мир!' ] }; const pdfDoc = pdfMake.createPdf(docDefinition); });
docDefinition
- это объект, содержащий определение документа. В приведенном выше примере мы просто добавили один элемент "Привет, мир!".
Шаг 3: Сохранение или отправка PDF
После создания документа PDF, у вас есть несколько вариантов, как обрабатывать его. Можете сохранять PDF локально или отправлять его пользователю. Вот примеры обоих вариантов:
Сохранение PDF локально:
app.get('/generate-pdf', (req, res) => { const docDefinition = { content: [ 'Привет, мир!' ] }; const pdfDoc = pdfMake.createPdf(docDefinition); pdfDoc.getBuffer(buffer => { fs.writeFile('example.pdf', buffer, err => { if (err) { console.log(err); res.status(500).send('Ошибка сохранения PDF'); } else { res.send('PDF сохранен'); } }); }); });
Отправка PDF пользователю:
app.get('/generate-pdf', (req, res) => { const docDefinition = { content: [ 'Привет, мир!' ] }; const pdfDoc = pdfMake.createPdf(docDefinition); pdfDoc.getBuffer(buffer => { res.setHeader('Content-Type', 'application/pdf'); res.setHeader('Content-Disposition', 'attachment; filename=example.pdf'); res.send(buffer); }); });
После вызова pdfDoc.getBuffer()
, вы можете либо сохранить PDF-файл на локальном диске, используя fs.writeFile
, либо отправить его пользователю, устанавливая правильные заголовки и отправляя буфер.
Шаг 4: Тестирование
Запустите сервер Express и перейдите по URL /generate-pdf
. Вы должны увидеть сообщение о сохранении PDF или загрузке файла в зависимости от варианта, который вы выбрали для обработки файла в маршруте.
Вот таким образом вы можете создать генерацию PDF в Express с использованием библиотеки pdfmake
. Запомните, что это только базовый пример и pdfmake
предоставляет более сложные возможности для создания настраиваемых документов PDF, содержащих таблицы, изображения и другие элементы. Не забудьте прочитать документацию pdfmake
, чтобы узнать больше о его возможностях.