Буфер узла не загружает файл должным образом? - PullRequest
0 голосов
/ 08 декабря 2018

Я успешно отправляю запрос get, который генерирует pdf на сервере, который я сейчас хочу отправить обратно клиенту и загрузить в браузер.Используемая мной генерирующая библиотека npm pdf называется html-pdf и имеет следующие параметры:

pdf.create(html).toFile([filepath, ]function(err, res){
  console.log(res.filename);
});

pdf.create('<h1>Hi</h1>').toBuffer(function(err, buffer){
  console.log('This is a buffer:', Buffer.isBuffer(buffer));
});

Когда я использую опцию toFile, файл генерируется правильно,однако, когда я использую опцию toBuffer и отправляю ее обратно пользователю, полученный pdf будет пустым.

Я отправляю буфер пользователю из моего обработчика ajax следующим образом:

module.exports = function(req, res) {
    pdf.create(html).toBuffer(function(err, buffer){
        res.setHeader('Content-Disposition', 'attachment; filename=panda.pdf');
        res.setHeader('Content-Type', 'application/pdf');
        res.send(buffer)
    });
};

, который получен на клиенте здесь:

$.get('generatePdf', function(data, status) {
    const url = window.URL.createObjectURL(new Blob([data]));
    const link = document.createElement('a');
    link.href = url;
    link.setAttribute('download', 'file.pdf');
    document.body.appendChild(link);
    link.click();
})

По какой-то причине загруженный PDF-файл пуст.Кто-нибудь знает, что я могу делать неправильно?

Мой загруженный файл поврежден в соответствии с этим онлайновый валидатор pdf со следующими ошибками:

Результат Документ делаетне соответствует PDF / A.Подробности Проверка файла "file (8) .pdf" на уровень соответствия pdf1.4

Ключевое слово 'xref' не найдено или таблица внешних ссылок искажена.Файл трейлера словаря отсутствует или недействителен.Ключ «Длина» объекта потока неверен.Ошибка в потоке Flate: ошибка данных.Документ не соответствует запрашиваемому стандарту.Формат файла (заголовок, трейлер, объекты, внешние ссылки, потоки) поврежден.Документ не соответствует стандарту PDF 1.4.

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