我尝试使用pdfMake
和Angular
从HTML创建一个PDF
(我也尝试过jsPDF
,但也无法让它工作)。我尝试在我的Angular 控制器中使用以下代码:
var blob = new Blob([document.getElementById('exportable').innerHTML])
var docDefinition = {
content: [blob]
}
pdfMake.createPdf(docDefinition).open();
但收到以下错误:
无法识别的文档结构:{"_margin”:空}"。
我的HTML在一个div exportable
中包含两个简单的表。
如果有人知道这个问题的解决方案,或者另一种方法来获得HTML到PDF从Angular ,请帮助。
任何帮助都是非常感谢!
5条答案
按热度按时间e5nqia271#
好吧,我知道了。
1.你需要html2canvas和pdfmake,你不需要在你的app.js中做任何注入,只需要在你的脚本标签中包含
1.在要创建PDF的div上,添加如下ID名称:
1.在Angular 控制器中,在调用html2canvas时使用div的id:
1.使用toDataURL()将画布更改为图像
1.然后在pdfmake的docDefinition中将图像分配给内容。
1.控制器中的完整代码如下所示:
mmvthczy2#
我知道这和这篇文章无关,但可能会帮助其他人在客户端将HTML转换为PDF。如果你使用剑道,这是一个简单的解决方案。它还保留了CSS(大多数情况下)。
xienkqul3#
这就是我使用Angular2应用程序中的html 2 pdf时的效果,因此我在控制器中引用了此函数
在html2pdf.js中声明。
所以我在我的angular-controller中的import声明后面添加了这个声明:
然后,从Angular 控制器的一个方法调用这个函数:
希望能有所帮助
dluptydi4#
在service-now平台上实现了这个。不需要使用其他库- makepdf有你需要的一切!
我html部分(包括preloder gif):
这是客户端脚本(js部分)
因此,在页面加载时,我启动init函数,生成pdf内容,如果需要预览(设置为true),结果将被分配给c.content变量。在html端,对象将不会显示,直到c.content将得到一个值,所以这将显示加载gif。
6kkfgxo05#
我用这种方式-也许它会对某人有用