2014-09-17 4 views
6

JSReport에 관한 문제가 있습니다. 이미 API가 있다고 가정했습니다 ... 지금 내가 원하는 것은 AngularJS를 사용하는 클라이언트 측과 연결하는 방법입니다.AngularJS에서 jsReport를 연결하는 방법은 무엇입니까?

내가 우편 게시자를 사용하면 원하는 PDF 파일을 반환합니다. 하지만 내 문제는

내가 이런 코드가 ... 그것은 내가 AngularJS와를 사용하여 게시 할 때 내 페이지입니다 표시하는 방법은 다음과 같습니다

컨트롤러를

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

서비스

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; 

이제는 해당 코드가 작동하지 않습니다. 반환 및 다만 포스트 그러나 아직도 작동하지 않으며조차 pdf를 다운로드하는 것은 그것에 작동하지 않았다.

누구나하시기 바랍니다 도움이 될 수 있습니다 ...이 같은

+0

보고서를 어떻게 작성 했습니까? – Sajeetharan

답변

4

사용 ..

컨트롤러

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

서비스

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

주요 아이디어를 result.data가 방울로 변환하고 읽을되도록 objectURL을 작성하고 URL

HTML에 각 신뢰하는 데 사용되는 object 태그 $sce.trustAsResourceUrl

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

나는이 참조되어 있다는 것입니다 명확한 설명을 위해 AngularJS: Display blob (.pdf) in an angular app 게시물을 읽으십시오.

관련 문제