首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在addHTML中使用jsPDF中的jsPDF函数

在addHTML中使用jsPDF中的jsPDF函数
EN

Stack Overflow用户
提问于 2015-10-22 10:33:41
回答 3查看 14K关注 0票数 1

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

我的代码:

插件加载:

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

触发该操作的按钮:

代码语言:javascript
复制
<button type="button" class="btn btn-w-m btn-success" ng-click="x21ot.printDocument()">Print</button>

和被调用的函数:

代码语言:javascript
复制
    this.printDocument = function(){
        var pdf = new jsPDF('p','pt','a4');
         pdf.addHTML($("#chart1"),function() {
             pdf.save('web.pdf');
         });
    }

当这个动作被称为“什么都不会发生”。我尝试了不同的输出方法: doc.output('dataurlnewwindow');但是它不起作用。

我已经调试了addHTML函数,并发现有一个从不触发的onrender事件。

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-30 21:50:28

我也有同样的问题,我可以通过包括html2canvas来解决它。

npm install html2canvas --save

代码语言:javascript
复制
//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)之前,我从未在网站上看到过提到过的内容。

票数 2
EN

Stack Overflow用户

发布于 2016-03-25 02:36:23

这是我的密码

代码语言:javascript
复制
$scope.printDocument = function(){
  var pdf = new jsPDF('p','pt','a4');
  pdf.addHTML(document.body,  function() {
    pdf.save('web.pdf');
  });
}

我的服务html2Canvas中需要app.js,我可以看到PDF对象上有一个addHTML函数,但是它从未进入回调函数,控制台中也没有错误。

jsPDF.addHTML似乎没有进入options.onrendered函数。如果我发现了什么就会在这里更新。

编辑修复:我通过npm安装了html2canvas,并在我的app.js文件中设置了要求(角应用程序),但它没有工作。然后,我发现0.4.1 html2Canvas可用于bower安装。一旦我添加了(都加载了,太胆小而无法删除npm版本),它就可以正常工作了。哈哈!

票数 1
EN

Stack Overflow用户

发布于 2017-02-09 18:58:24

代码语言:javascript
复制
function HTMLtoPDF(){   
        //Try this code (Class name: "pdfFromHTML.js"): since the code format important im changing this

html2canvas(document.body, {
    onrendered: function(canvas) {
        var imgData = canvas.toDataURL('image/png');
        var doc = new jsPDF('p', 'mm', 'a4');
        var position = 0;
        doc.addImage(imgData, 'PNG', 20, 20);
        doc.save('Test.pdf');           
    }
 });
}

你需要这个库:

代码语言:javascript
复制
<script src="js/jspdf.js"></script>
<script src="js/html2canvas.js"></script>
<script src="js/pdfFromHTML.js"></script> /* Call the class */

你可以按下按钮:

代码语言:javascript
复制
<button class="btn btn-primary" onclick="HTMLtoPDF()">Save</button>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33278959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档