Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP表+;pdfMake+;安格拉斯_Php_Angularjs_Pdfmake - Fatal编程技术网

PHP表+;pdfMake+;安格拉斯

PHP表+;pdfMake+;安格拉斯,php,angularjs,pdfmake,Php,Angularjs,Pdfmake,我是PHP和AngularJS的高手 我有一个使用PHP-AJAX与web服务进行通信的网页。它查询数据库,并在html占位符中回显结果(一个大表) 我想在用户按下按钮时将该表的内容打印在可下载的PDF文件中 我想使用PDFmake,现在它可以很好地用于测试目的,但我如何才能将表中的内容传递给AngularJS的应用程序? 也许我应该将表的id传递给docDefinition内容?那样的话,我不知道怎么做。 注意:可能我的方法不正确,因为我必须将PHP降级到不同的任务中,并使用AngularJS

我是PHP和AngularJS的高手

我有一个使用PHP-AJAX与web服务进行通信的网页。它查询数据库,并在html占位符中回显结果(一个大表)

我想在用户按下按钮时将该表的内容打印在可下载的PDF文件中

我想使用PDFmake,现在它可以很好地用于测试目的,但我如何才能将表中的内容传递给AngularJS的应用程序? 也许我应该将表的id传递给docDefinition内容?那样的话,我不知道怎么做。

注意:可能我的方法不正确,因为我必须将PHP降级到不同的任务中,并使用AngularJS查询数据库,但现在我想继续使用这种方法


谢谢

我建议您使用角度服务(如中所述)

然后,您可以在控制器中使用它从后端获取数据,并在PDFmake中构建表结构:


“将内容传递给angularJS应用程序”是什么意思?您是否尝试过在上解释的方法(旁注:对于您的问题,无论您是使用php还是其他方式生成HTML,似乎都无关紧要,因此这不是您问题的一部分)谢谢您,但很抱歉,我无法理解。什么是html2canvas?我的意思是,如何从AngularJS(用于pdf打印)访问表的数据?我必须将表的id从我的php页面传递到Angular应用程序?如果是,我怎么做?我有点困惑,我编辑了原文。谢谢你的建议。
var bigTableApp = angular.module('bigTable',[])

bigTableApp.factory('BigTableSrv', ['$resource',
function($resource) {
  return $resource('URL_to_php_backend', {}, {
    query: {
      method: 'GET',
      params: {param1: 'value 1', param2: 'value 2'},
      isArray: true
    }
  });
}
]);
bigTableApp.controller('BigTableController', ['$scope', 'BigTableSrv',
  function BigTableController($scope, BigTableSrv) {
    $scope.bigTable = BigTableSrv.query();
    $scope.pdfMakeTable = {
      // array of column widths, expand as needed
      widths: [10, *, 130],
      body: []
    };

    $scope.printTable = function() {
      pdfMakeTable.body = $scope.bigTable.map(el => {
        // process each element of your "big table" to one line of the 
        // pdfMake table, size of return array must match that of the widths array
        return [el.prop1, el.prop2, el.prop3]
      });

      // create the pdfMake document
      let docDefinition = {
        content: [ pdfMakeTable ]
      }

      // print your pdf
      pdfMake.creatPdf(docDefinition).print()
    }
  }
]);