从 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() 时使用正确的编码。
我的 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() 时使用正确的编码。