我正在尝试使用 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/