Почему мой PDF остается белым, когда я пишу это? - PullRequest
0 голосов
/ 23 мая 2019

Я сделал микросервис для преобразования HTML-шаблона в PDF. Я использую Кукольника для этого. Когда pdf создан, я отправляю его в ответ fs.createReadStream(path).pipe(res);

Но, когда я пишу файл в приложении, мой PDF остается белым ... В микросервисе PDF-файл имеет видимый шаблон. файл pdf с шаблоном

Я попробую это,

fs.writeFile(tmpFileName, res.body, {encoding: null},  err => {
    if(err) throw new Error("Error while writing the pdf file");
)};

или это

const pdf = fs.createWriteStream(tmpFileName);
pdf.on('error', err => {
    console.log(err);
});
pdf.write(res.body);
pdf.end();

Думаю, я не использую хороший метод, понимаете?

РЕДАКТИРОВАТЬ:

Проблема была в кодировке запроса. Должно быть установлено значение null для перезаписи файла после ответа.

request.post({
          url: `${config.url_htmltopdf}htmlToPdf`,
          body: fileToTransform,
          json: true,
          encoding: null
        }, (err, res) => {
          if (!err && res.statusCode === 200 && res.headers['content-type'] === 'application/pdf') {
            fs.writeFile(tmpFileName, res.body, {encoding: null},  err => {
              if(err) throw new Error("Error while writing the pdf file");
              console.log('pdf generated ' + tmpFileName);
              resolve ({fileId, tmpFileName});
            });
          } else {
            throw new Error(`Request Error => err: ${err}, resCode: ${res.statusCode}, resHeaders: ${res.headers}`);
          }
        });
...