2014-09-17 28 views
6

Tôi có một vấn đề bây giờ về JSReport .. Nó giả định rằng tôi đã có một API ... Những gì tôi muốn bây giờ là làm thế nào để liên kết nó với phía khách hàng của tôi trong đó sử dụng AngularJS.Làm thế nào để kết nối jsReport trong AngularJS?

Nếu tôi sử dụng Postman, nó sẽ trả về một tệp pdf mà tôi muốn. Nhưng vấn đề của tôi là làm thế nào để hiển thị nó là trang của tôi khi tôi gửi nó bằng cách sử angularjs ..

Tôi có một mã như thế này:

khiển

$scope.Print = function() { 
     authService.print().then(function(result){ 
      var _result = result; 
     }); 
    }; 

Dịch vụ

var _print = function() { 
     var data = { "template": { "shortid": "byQtwHLPQ" } }; 
     return $http.post("http://192.168.8.87/api/report", data).then(function (result) { 
      return result; 
     }); 
    }; 

authServiceFactory.print = _print; 

Bây giờ tôi có Mã đó và nó không hoạt động ... Tôi cho rằng nó không có lợi nhuận nên tôi xóa sự trở lại và chỉ đăng nhưng vẫn không hoạt động và thậm chí tải xuống bản pdf cũng không hoạt động.

Bất cứ ai cũng có thể giúp hãy ...

+0

bạn đã tạo báo cáo như thế nào? – Sajeetharan

Trả lời

4

Sử dụng như thế này ..

khiển

var parameter = { "template": { "shortid": "ZkMoslfdX" }}; 
     PrintService.Print(parameter).then(function (result) { 
      var file = new Blob([result.data], { type: 'application/pdf' }); 
      var fileURL = URL.createObjectURL(file); 
      $scope.content = $sce.trustAsResourceUrl(fileURL); 
     }); 

Dịch vụ

var reportUrl = "http://192.168.8.87/api/report"; 
    var _print = function (parameter) { 
     return $http.post(reportUrl, parameter, { responseType: 'arraybuffer' }).success(function (response) { 
      return response; 
     }); 
    }; 

Ý tưởng chính là result.data được chuyển thành một blob và tạo ra một objectURL để nó có thể đọc được và đến object thẻ và $sce.trustAsResourceUrl sử dụng để tin tưởng góc để URL

của bạn HTML

<object data="{{content}}" type="application/pdf" style="width:100%;height:80%"></object> 

tôi tham khảo này post AngularJS: Display blob (.pdf) in an angular app để làm rõ chỉ cần đọc cái đó.

Các vấn đề liên quan