AngularJS - 触发生成后下载PDF

时间:2017-03-20 16:41:15

标签: javascript php angularjs pdf

我发现了几篇关于这个主题的文章,但是没有一篇文章帮助我达到这个程度,我设法用它来下载带有角度的pdf文件。

所以背景是,用户点击一个按钮,将一些数据发送到我创建pdf文件的php脚本。完成后,应立即开始下载文件。

用户点击此处:

<button class="btn pull-right" ng-click="printList(products)">Create list</button>

然后我有这个功能:

app.controller('Delivery', function($scope, $routeParams, Products, List) {    
$scope.printList = function ($products) {
      List.save({
        'products': $products,
        'selectedDate': $scope.state.dates.start
      }, function () {
      });
    };
});

工厂:

app.factory('List', function($resource) {
  return $resource('/backend/FpDashboard/listApi');
});

在PHP中,我有在服务器上创建pdf文件的操作,但是如何从List.save管理我的回调以启动文件下载?

谢谢!

1 个答案:

答案 0 :(得分:1)

我的项目也有相同的功能,这是我用来以PDF格式下载数据的代码。

downloadAsPdf.getfile(data)
      .success(function(data) {
          data.fileName = decodeURIComponent(data.fileName);
          if(isSafariOrIE){
              windowReference.location = data.fileName;
          } else {
              var save = document.createElement('a');
              save.href = data.fileName;
              save.target = '_blank';
              save.download = data.fileName || 'unknown';
              var evt = new MouseEvent('click', {
                  'view': window,
                  'bubbles': true,
                  'cancelable': false
              });
              save.dispatchEvent(evt);
             (window.URL || window.webkitURL).revokeObjectURL(save.href);
       }
   })