В приложении, использующем nodejs, express и pdfkit, я пытаюсь создать pdf.
Код, который генерирует pdf:
exports.CreatePdfff = async function (req, res) {
const doc = new PDFDocument;
//doc.pipe(fs.createWriteStream('/path/to/file.pdf')); // write to PDF
doc.pipe(res); // HTTP response
res.setHeader('Content-type', 'application/pdf');
res.setHeader('Content-disposition', 'attachment'); // download file
// add stuff to PDF here using methods described below...
doc.text('Hello world!');
// finalize the PDF and end the stream
doc.end();
};
Это мой роутер
router.get('/createpdf', filter_controller.CreatePdfff);
Так что если в браузере я называю это
/ createpdf
Я получаю окно, которое спрашивает меня, где я хочу сохранить файл PDF, но если я позвоню тому же маршрутизатору отсюда
$('#filterCreatePdf').on('click', function(event) {
$.get('/createpdf', function(data) {
});
});
Тогда у меня не появляется окно с вопросом, где сохранить файл.
Почему в одном случае я получаю желаемый вывод, а в другом - нет ? Как получить возможность для пользователя выбрать нужное место для сохранения документа?
Каков наилучший способ создания PDF-файла в nodejs и предоставления его клиенту?
ОБНОВЛЕНИЕ !
В ajax вызов $.get('/createpdf', function(data) } });
Я получаю этот поток PDF
%PDF-1.3
%����
7 0 obj
<<
/Type /Page
/Parent 1 0 R
/MediaBox [0 0 612 792]
/Contents 5 0 R
/Resources 6 0 R
>>
endobj
6 0 obj
Но я все еще не могу показать всплывающее окно, чтобы сохранить файл или даже показать данные PDF. Есть предложения?