#node.js #electron #memorystream
#node.js #electron #memorystream
Вопрос:
Версия узла: 5.7.1
Платформа: 64-разрядная (Windows)
Привет,
Я новичок в работе с node. Я создал приложение в electron (которое использует node внутри), которое взаимодействует с сервисом .net restful для извлечения данных из базы данных и отображения их на экране. У одного из данных есть путь к pdf на сервере, который я считываю на сервер, конвертирую его в поток памяти и отправляю в клиентское приложение.
Проблема в том, как я могу прочитать этот поток памяти в node js и открыть PDF-файл на моем компьютере с Windows через Adobe acrobat reader, который установлен на моем компьютере с Windows? Вот пример кода, который я уже пробовал :
var optionsGetPDF= {
host: 'localhost',
port: 8080,
path: '/GetPDFDoc?docid=' docid,
method: 'GET'
};
var memStream = new memorystream(null, { readable: false });
http.request(optionsGetPDF, function (res) {
res.pipe(memStream);
res.on('end', function () {
alert(memStream.toString().length)
});
}).end();
Итак, здесь я получаю PDF-файл в виде memorystream, и я просто попытался указать длину для подтверждения, которая работает нормально. Теперь я хочу, чтобы этот поток памяти был снова преобразован обратно в PDF, а затем открыт в Adobe acrobat, установленном на моем компьютере с Windows.
Любая помощь приветствуется.
Спасибо и с уважением
Shobhit
Комментарии:
1. есть ли причина, по которой вы не хотите просто сохранить его как файл, а затем открыть?
2. @Paul на самом деле сам файл сохраняется в формате PDF, который я пытаюсь получить с удаленного сервера, поэтому, основываясь на пути к серверу (который я получаю из базы данных), мой restful service считывает PDF-файл, преобразует его в поток памяти и отправляет клиенту. Даже если я делаю это, рассматривая его как файл, я не уверен, как это сделать?
3. Я вижу, мне это было непонятно, когда я прочитал ваш вопрос. Я скоро соберу ответ.
4. Я полностью пропустил часть вашего вопроса «электронное приложение». Моя ошибка. Из документов вы можете управлять загрузкой с помощью DownloadItem: electron.atom.io/docs/api/download-item Что подразумевает, что ссылка на URL-адрес должна работать так, как ожидалось в противном случае. Я не пробовал это, хотя
5. @Paul Спасибо. Если бы вы могли посоветовать мне как разработчику javascript, возможно, только в той части, как нам прочитать поток файла и преобразовать этот поток обратно в исходное состояние, это также могло бы мне помочь, поскольку я смог получить поток файла из сервиса с правильной длиной на стороне клиента. Что становится сложным, так это то, что нужно сделать после этого, чтобы отобразить этот файл пользователю. Надеюсь, я понял.