2015-12-23 16 views
10

Mam poniższy kod w moim maszynopisie, aby wywołać metodę web api i pobrać tablicę bajtów binarnych (BLOB), która jest plikiem PDF. Moim wymaganiem użytkownika jest otwarcie pliku PDF w nowym oknie.Potrzebujesz otworzyć blob/PDF w oknie IE

$scope.selectRow = (itemImageNumber: string, printProcessId: string, printXmlId: string) => { 
     itemService.GetOutgoingDocument($scope.item.ItemId, itemImageNumber, printProcessId, printXmlId).success((response) => { 
      var file = new Blob([response], { type: 'application/pdf' }); 
      var fileUrl = URL.createObjectURL(file); 
      //$scope.outDocContent = $sce.trustAsResourceUrl(fileUrl); 
      var win = window.open($sce.trustAsResourceUrl(fileUrl)); 
      win.focus(); 
     }).error(() => { 
      var message = 
       "The document you selected can’t be displayed at this time. Please call Customer Service at xxx-xxx-xxxx for assistance."; 
      $rootScope.$broadcast("app-message", { 
       type : "danger", 
       message : message 
      }); 
     }); 
    } 

Ten kod działa poprawnie w przeglądarce Chrome. Dokument otwiera się zgodnie z oczekiwaniami. Jednak IE pyta "Czy chcesz zezwolić tej witrynie na otwieranie aplikacji na twoim komputerze?" i kiedy jest to dozwolone, powiedz "Nie są zainstalowane żadne aplikacje, aby otworzyć ten rodzaj łącza (blob)".

Wszelkie pomysły, jak otworzyć to w nowej karcie lub zapisać plik blob jako plik w ostateczności?

+3

Dziki domysł: istnieją równie podobne pytania, które mogą być pomocne: http://stackoverflow.com/questions/28196065/downloading-pdf-as-blob-with-js-in-ie9, http://stackoverflow.com/questions/24007073/open-links-made-by-createobjecturl-in-ie11 W szczególności ta specyficzna dla IE linia może być interesująca: 'window.navigator.msSaveOrOpenBlob (blobObject, fileName);' –

Odpowiedz

0

Powód, dla którego działa w przeglądarce Chrome i innych zwykłych przeglądarkach: zainstalowano w nich przeglądarkę pdf.

Dzierżawa dlaczego nie działa w IE: ponieważ w architekturze, jeśli IE, powinien istnieć jakiś program czytający PDF zainstalowany w systemie operacyjnym; na przykład, jeśli masz zainstalowany Adobe Acrobat, otworzysz go bez problemów.

Mogę polecić ci użycie: pdf.js/.

Powiązane problemy