从 API 中检索到的 PDF 空白页

Blank pages in PDF retrieved from API

我的 Web 应用程序正在向外部 API 发出 HTTPS GET 请求。我收到的是一个以以下内容开头的 PDF 文件:

%PDF-1.4

我想做的是将此 PDF 保存在服务器上,以便将此文件提供给客户端。问题是 PDF 中有一些空白页应该有 none.

下面是负责检索 PDF 并将其保存到服务器的代码:

    Meteor.http.get('url/' + chartId,  {
      headers: {
        Authorization: 'Bearer ' + key.token
      }
    }, function(err, result) {
      if(!err) {
        var fs = Npm.require('fs');
        var path = process.env['METEOR_SHELL_DIR'] + '/../../../public';

        fs.writeFile(path + "/charts/" + Meteor.userId() + '.pdf', result.content, (function (err) {
          if (err) {
              console.log("Error:" + err);
          }
        }));

      } else {
        throw new Error('Error from API getting documents');
      }
    });

奇怪的是,我保存到服务器的 PDF 显示页面上有文本,但在应该有图像(图表)的地方显示空白页面。也许这是一个编码问题?

好的,正如我最初猜测的那样,这与编码有关。 确保在 http 请求 encoding: 'binary' 上设置正确的 headers 并在使用 .writeFile() 时使用正确的编码。

来源:Node express save pdf from binary string