2014-10-31 43 views
0

基本上,我遇到的問題是我向服務器查詢以返回以JSON格式返回的pdf文件。從JSON創建可下載的pdf文件

我試圖創建一個HTML元素自動下載PDF文檔(這不是問題),問題是下載,因爲它失敗,並報告錯誤,比如在Adobe Reader無法打開該PDF:

「的Adobe閱讀器無法打開‘檢驗.pdf’,因爲要麼是不支持 文件類型或因爲該文件已損壞(例如, 它被作爲電子郵件附件並沒有被正確解碼) 「

我正在使用AngularJS來調用ajax到服務器,以獲得JSON對象,然後嘗試對其進行格式化並進行下載:

... 
var pdf = pdfservice.get({id:pdfId}); 
console.log(pdf); 
pdf.$promise.then(function(data){ 
    var element = angular.element('<a/>'); 
    element.attr({ 
      href: 'data:attachment/pdf;charset=utf-8,' + encodeURI(data), 
      target: '_self', 
      download:'test.pdf' 
    })[0].click(); 
}); 
... 

UPDATE

從角和相同的代碼使用$ http服務,其下載的PDF,但它是空的,所以也許它可能是編碼或在格式化的JSON對象的一個​​問題...

... 
$http({ method: 'GET', url: 'http://www.testweb.com/pdf/1') 
    .success(function(data) { 
      console.log(data); 
      var element = angular.element('<a/>'); 
      element.attr({ 
        href: 'data:attachment/pdf;charset=utf-8,' + encodeURI(data), 
        target: '_self', 
        download:'test.pdf' 
      })[0].click(); 
     }); 
... 

回答

2

PDF文件是不一樣的文字(或JSON)文件,請嘗試使用圖書館像JSPDF使客戶端雙面PDF fi LES。

+0

我需要的是一種服務或腳本,它可以幫助我管理一個json對象,並將其作爲pdf下載,而不是外部網站... – 2014-10-31 15:37:57

+0

@JoeLewis這是一個腳本,外部網站是由開發人員製作的它。檢查:源代碼https://github.com/MrRio/jsPDF。 (/dist/jspdf.min.js) – Paradoxis 2014-10-31 15:56:47