当前位置: 首页 > 面试题库 >

如何使用html2canvas和jspdf以适当且简单的方式导出为pdf

慕容聪
2023-03-14
问题内容

我目前正在使用学校管理软件,该软件通常需要导出包含data tables和的html内容div tag

我已经尝试了所有可能的方法来编写代码,从而能够以一种很好的方式(最好是使用CSS)导出html数据。在这里检查了一些问题和答案之后,我尝试使用spdf,但是没有运气。

它一直在破坏我的表对齐方式,然后我读了一下,html2canvas但是要实现它jspdf是我的问题,如果要使用div标签,则要捕获内容,html2canvas然后发送画布以jspdf将画布导出为pdf。

这是我的代码如下:

<script src="assets/js/pdfconvert/jspdf.js"></script>
<script src="assets/js/pdfconvert/jspdf.plugin.from_html.js"></script>
<script src="assets/js/pdfconvert/jspdf.plugin.split_text_to_size.js"></script>
<script src="assets/js/pdfconvert/jspdf.plugin.standard_fonts_metrics.js">  </script>
<script src="assets/js/pdfconvert/jspdf.plugin.addhtml.js"></script>
<script src="assets/js/pdfconvert/filesaver.js"></script>
<script src="assets/js/pdfconvert/jspdf.plugin.cell.js"></script>
<script src="assets/js/pdfconvert/html2canvas.js"></script>
<script src="assets/js/pdfconvert/jspdf.plugin.addimage.js"></script>

这是js代码

var pdf = new jsPDF('p', 'pt', 'letter');
pdf.addHTML($('#ElementYouWantToConvertToPdf')[0], function () {
pdf.save('Test.pdf');
});

问题答案:

我为您制作了一个jsfiddle。

 <canvas id="canvas" width="480" height="320"></canvas> 
      <button id="download">Download Pdf</button>

        html2canvas($("#canvas"), {
            onrendered: function(canvas) {         
                var imgData = canvas.toDataURL(
                    'image/png');              
                var doc = new jsPDF('p', 'mm');
                doc.addImage(imgData, 'PNG', 10, 10);
                doc.save('sample-file.pdf');
            }
        });

在Chrome38,IE11和Firefox 33中进行了测试。似乎Safari有问题。但是,安德鲁通过从PNG切换到JPEG,使其在Mac
OSx的Safari 8中可以工作。有关详细信息,请参见下面的评论。



 类似资料:
  • 演示 嗨,我在应用程序中使用Angular8。在这里,我使用jspdf和html2canvas将html转换为pdf。但我只能打印半页,不能打印整页。谁能帮我找出哪里出了问题。 我附上了一个演示,当我在下拉列表中选择任何值时,会打开一个div,所以我需要获得div部分中所有的完整值。请帮忙。我得到的输出是这样的,但它不包含预期的完整值: 输出 如果有任何其他的方法,输出作为我的要求也被接受。 TS

  • 问题内容: 今天,在我的采访中,一位面试官要求我写一个单例课程。我给我的答案是 突然他告诉我这是上课的老方法。谁能帮我他为什么这么说。 问题答案: 创建单例时,我想到的第一件事是。我通常使用enum实现单例: 使用枚举可为您带来的好处之一就是序列化。 对于单例类,您将必须确保通过实现方法来确保序列化和反序列化不会创建新实例,而enum并非如此。 使用类,您应该这样创建单例:

  • 本文向大家介绍C#使用winform简单导出Excel的方法,包括了C#使用winform简单导出Excel的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#使用winform简单导出Excel的方法。分享给大家供大家参考,具体如下: 在项目中引入Excel.dll 更多关于C#相关内容感兴趣的读者可查看本站专题:《C#操作Excel技巧总结》、《C#中XML文件操作技巧汇总》、《

  • 问题内容: 我创建了一个函数来获取当前网页的屏幕截图,并使用html2canvas和jsPDF将其保存为PDF。以下是我的代码: 通过使用上面的代码,我可以下载文件并将其保存在本地。但我想直接使用php脚本通过电子邮件发送生成的pdf。 以下是在php脚本中发布图像的代码,该图像将作为电子邮件发送: 但是如何在参数中发布生成的pdf ? 请为此提出任何解决方案。 问题答案: 请检查代码- 我希望它

  • 问题内容: 我对Swift和Xcode还是比较陌生,我正在尝试制作tic TAC Toe游戏。除了如何通过三个x或o画一条线外,我已经弄清楚了一切。我不知道如何画线。我已经在网上寻找了答案,却找不到答案。 问题答案: 尝试研究UIBezierPath,它将对您画线有很大帮助。这是文档。这是一个例子: 确保像上面的示例一样,将此代码放在中。 如果您需要更新工程图,只需致电进行更新。

  • 问题内容: 我是使用jsPDF的新手,但是为了我的生命,我无法获得任何CSS来应用此东西!我尝试了内联,内部和外部都无济于事!我在另一篇SO文章中读到,因为从技术上讲是将内容打印到文件中,所以我需要打印样式表,但这也不起作用。 我有一个非常基本的页面,我只想尝试使用任何CSS:JS: HTML: 最后是外部样式表: 我确定所有内容都正确包含在内,并且没有错误,已经检查了所有内容。是否需要调用一些其