как прочитать поток памяти PDF-файла и открыть его в nodejs

#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, возможно, только в той части, как нам прочитать поток файла и преобразовать этот поток обратно в исходное состояние, это также могло бы мне помочь, поскольку я смог получить поток файла из сервиса с правильной длиной на стороне клиента. Что становится сложным, так это то, что нужно сделать после этого, чтобы отобразить этот файл пользователю. Надеюсь, я понял.