2015-10-27 3 views
0

Я пытаюсь создать PDF и отображать внутри любого Div, я получаю двоичные данные с сервера, но когда я пытаюсь преобразовать этот поток, он говорит, что не удалось загрузить pdf. Я просмотрел его и увидел ответ многих людей, которые говорят, что используют responseType: «arraybuffer», но я получаю объект от сервера и извлекаю из него двоичный файл, поэтому я не могу его использовать, хотя я тоже пытался использовать этот подход, но он не Работа. Вот мой код контроллера:Сгенерировать pdf с использованием потока в Angular

correspondenceService.getCorrespondenceDocument(id).$promise.then(function (data) { 
       var file = new Blob([(data[0].documentBytes)], { type: 'application/pdf' }); 
       var fileURL = window.URL.createObjectURL(file); 
       vm.content = $sce.trustAsResourceUrl(fileURL); 
       window.open(fileURL); 

      }, function (reason) { }); 
     } 

Это служба:

getCorrespondenceDocument: function (correspondenceId) { 
       return $resource(correspondenceUrl + "getCorrespondenceDocuments").query({ correspondenceId: correspondenceId }); 
      } 

и это мой WebAPI:

[Route("getCorrespondenceDocuments")] 
     [HttpGet] 
     public async Task<IEnumerable<Document>> GetCorrespondenceDocumentsAsync(int correspondenceId) 
     { 
      var documents = await _correspondenceFacade.GetCorrespondenceDocumentDetailsAsync(correspondenceId); 
      return Mapper.Map<IEnumerable<Document>>(documents); 
     } 

Пытаясь показать, как это на View:

Пожалуйста, дайте мне знать, где я ошибаюсь. Спасибо заранее.

С уважением, Вивек

ответ

0

Наконец мне удалось это сделать. Проблема в том, что я пропускал 3 параметра в $ http.get(), теперь я пропускаю только 2 параметра.

getCorrespondenceDocuments: function (correspondenceId) { 
      return $http.get(correspondenceUrl + 'getCorrespondenceDocuments' + '?correspondenceId=' + correspondenceId, { responseType: 'arraybuffer' }).then(function (response) { 
       return response; 
      }); 
     } 

Хотя я не хочу передавать какие-либо параметры, используя этот символ?? и указав id, но я не смог найти решение этой проблемы. Большое спасибо, ребята, за то, что я прошел через свой пост. С уважением, Vivek

Смежные вопросы