2015-12-23 12 views
10

Web api yöntemini çağırmak ve PDF biçiminde bir ikili bayt dizisi (blob) almak için aşağıdaki kodumun yazı tipimde bulunur. Kullanıcı gereksinim PDF'yi yeni bir pencerede açmaktır.IE penceresinde blob/PDF açması gerekiyor

$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 
      }); 
     }); 
    } 

Bu kod, Chrome'da düzgün çalışıyor. Belge beklendiği gibi açılır. IE bununla birlikte "Bu web sitesinin bilgisayarınıza bir uygulama açmasına izin vermek istiyor musunuz?" ve izin verildiğinde bana "Bu tür bir bağlantıyı (blob) açmak için hiçbir uygulama yüklenmemiş".

Bunu yeni bir sekmede nasıl açacağınız veya blob'u son çare olarak dosya olarak nasıl kaydedeceğinizle ilgili herhangi bir fikir var mı?

+3

Vahşi tahmin: Bazı yardımlarda olabilecek benzer sorular var: 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 Özellikle bu IE'ye özgü satır ilgi alanı olabilir: window.navigator.msSaveOrOpenBlob (blobObject, fileName); ' –

cevap

0

Chrome ve diğer normal tarayıcılarda çalışmasının nedeni: İçinde pdf önizleyicileri var.

IE'de neden çalışmadığı konusunda kiralama: çünkü mimaride IE işletim sisteminde yüklü bir PDF okuma programı olmalı; Örneğin, Adobe Acrobat yüklüyse, problemsiz açacaksınız.

Kullanmanızı tavsiye ederim: pdf.js/.