Мое веб-приложение делает запрос HTTPS GET внешним API. Что я получаю это PDF файл, который начинается с:Пустые страницы в PDF, полученные из API
%PDF-1.4
То, что я хотел бы сделать, это сохранить эту PDF на сервере, чтобы обслуживать этот файл клиенту. Проблема в том, что в PDF есть несколько пустых страниц, где их не должно быть.
Вот код отвечает за извлечение 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 я экономлю на сервер показывает страницы с текстом на них, но показывает пустые страницы где должны быть изображения (диаграммы). Perhabs это проблема кодирования?
Возможно ли, что 'result.content' возвращает содержимое в виде строки символов? В этом случае вам придется искать другое свойство, которое возвращает его как исходные байты. – mkl
@mkl 'result.content' действительно возвращает строку символов. К сожалению, это единственные данные, которые я могу получить от ответа. Есть ли способ получить исходные байты из этой строки? – JoeriSmits
Интерпретация двоичного файла как текста обычно является разрушительной, то есть необратимой. Поскольку я не настолько осведомлен о Javascript и, в частности, Meteor, я не знаю, является ли рассматриваемый случай исключением. – mkl