Как отправить вновь созданный PDF в браузер? - PullRequest
0 голосов
/ 31 августа 2018

Я использую пакет pdf для создания pdf квитанции о транзакции.

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

Я думаю, что должен сделать маршрут API, но я не уверен. Есть предложения?

var sys = require('sys');
var fs = require('fs');
var pdf = require('pdf').pdf;
var moment = require('moment');
var Decimal = require('decimal');

/* create the PDF document */
var item = "Vinyl";
var numItem = 3
var price = Decimal(30.00);
var subTotal = Decimal(numItem).mul(price).toNumber();
var tax = Decimal(.07).mul(subTotal).toNumber();
var total = tax + subTotal;

var doc = new pdf();
doc.text(80, 20, 'Transaction Reciept' );
doc.text(80, 30, 'Hot Drop Vinyl Shop');
doc.text(70, 40, moment().format('MMMM Do YYYY, h:mm:ss a'));
doc.text(50, 60, 'Item(s): ' + item);
doc.text(50, 70, 'Quantity: ' + numItem);
doc.text(50, 80, 'Price: $' + price);
doc.text(50, 90, 'Subtotal: $' + subTotal);
doc.text(50, 100, 'Tax: $' + tax);
doc.text(50, 110, 'Total: $' + total);


/* optional - set properties on the document */
doc.setProperties({
title: 'Transaction Reciept',
subject: 'Reciept for Transactions at Vinyl Shop',      
author: 'Group 6',
keywords: 'Vinyl Shop, Coding Bootcamp',
creator: 'pdf.js'
});

var fileName = "testFile"+new Date().getSeconds()+".pdf";

fs.writeFile(fileName, doc.output(), function(err, data){
sys.puts(fileName +' was created! great success!');
});

//send file to browser 

1 Ответ

0 голосов
/ 31 августа 2018

Это зависит от того, чего вы пытаетесь достичь. Вы можете проверить pdfmake (https://www.npmjs.com/package/pdfmake) или jsPDF , это хорошие библиотеки для создания PDF непосредственно в браузере.

Однако, если это не соответствует вашим потребностям, тогда да, вам придется использовать веб-инфраструктуру узла, такую ​​как express , чтобы создать маршрут API, который генерирует PDF и отправляет его в браузер.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...