javascript - 在 AngularJS 中使用 jsPDF 中的 addHTML 函数

标签 javascript angularjs jspdf

我正在尝试使用 jsPDF 插件在我的应用程序中创建自定义打印输出。应用程序使用 AngularJs 框架工作。我尝试了许多不同的示例代码,但没有任何效果...... ( http://jsfiddle.net/rpaul/p4s5k59s/5/ , http://mrrio.github.io/jsPDF/ ->addHtml, ...)。

我的代码:

插件加载:

...resolve: {
            loadPlugin: function ($ocLazyLoad) {
                return $ocLazyLoad.load([
                    {
                        serie: true,
                        name: 'Chart',
                        files: [ 'src/plugins/html2canvas.js', 'src/plugins/jsPDF/jspdf.debug.js']...

触发 Action 的按钮:

<button type="button" class="btn btn-w-m btn-success" ng-click="x21ot.printDocument()">Print</button>

以及被调用的函数:

    this.printDocument = function(){
        var pdf = new jsPDF('p','pt','a4');
         pdf.addHTML($("#chart1"),function() {
             pdf.save('web.pdf');
         });
    }

当 Action 被调用时什么也没有发生。我尝试了不同的输出方法:doc.output('dataurlnewwindow'); 但它不起作用。

我调试了 addHTML 函数,发现有一个永远不会触发的 onrender 事件。

这是 Angular 问题还是我做错了什么?

最佳答案

我遇到了同样的问题,我可以通过包含 html2canvas 来解决它。

npm install html2canvas --save

//Since I'm using browserify I then ran
global.html2canvas = require("html2canvas");

(https://github.com/niklasvh/html2canvas)

jsPDF 的 addHTML 函数依赖于它,但在我发现有关它的错误报告 (https://github.com/MrRio/jsPDF/issues/270) 之前,我从未在网站上的任何地方看到它被提及

关于javascript - 在 AngularJS 中使用 jsPDF 中的 addHTML 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33278959/

相关文章:

javascript - 通过 Node.js 连接到 OpenVPN 服务器

javascript - 如何找到创建特定文本的 li 并隐藏他和下一个 parent sibiling?

javascript - 如何使用js创建西里尔文PDF

javascript - 带有jsPDF的HTML字符串尾随页面

html - 如何处理 $ctrl.在 AngularJS 中?

javascript - jsPDF Autotable 在每个表格上方添加标题

javascript - 保存新模型实例后、转换到 Ember.js 中的路由之前更新资源模型

javascript - 创建一个 javascript 文档对象

javascript - 创建一个指令以使 ng-keyup 成为备用搜索初始值设定项

angularjs - HTML5 原生 DragEnter/DragLeave 事件交替触发