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

使用Angularjs中的pdfMake从HTML生成PDF

壤驷瑾瑜
2023-03-14
问题内容

我正在尝试PDF使用pdfMake和从HTML
创建一个Angular(我也曾尝试jsPDF并且无法使其正常工作)。我尝试在Angular控制器中使用以下代码:

var blob = new Blob([document.getElementById('exportable').innerHTML])
var docDefinition = {
    content: [blob]
}
pdfMake.createPdf(docDefinition).open();

但我收到以下错误:

无法识别的文档结构:{“ _ margin”:null}“。

我的HTML由div中的两个简单表组成exportable

如果有人知道解决此问题的方法,或者知道从Angular将HTML转换为PDF的另一种方法,请帮助。

非常感谢您的协助!


问题答案:

好的,我知道了。

  1. 您将需要html2canvas和pdfmake。您不需要在app.js中进行任何注入,只需将其包含在脚本标签中

  2. 在要为其创建PDF的div上,添加如下所示的ID名称:

     <div id="exportthis">
    
  3. 在Angular控制器中,在对html2canvas的调用中使用div的ID:

  4. 使用toDataURL()将画布更改为图像

  5. 然后在pdfmake的docDefinition中,将图像分配给内容。

  6. 控制器中完整的代码如下所示:

           html2canvas(document.getElementById('exportthis'), {
            onrendered: function (canvas) {
                var data = canvas.toDataURL();
                var docDefinition = {
                    content: [{
                        image: data,
                        width: 500,
                    }]
                };
                pdfMake.createPdf(docDefinition).download("Score_Details.pdf");
            }
        });
    

我希望这可以帮助其他人。编码愉快!



 类似资料:
  • 问题内容: 我有以下html代码: 我要做的就是将div中ID为“ pdf”的任何内容打印为pdf。这必须使用JavaScript来完成。然后应使用文件名“foobar.pdf”自动下载“pdf”文档 我一直在使用jspdf来执行此操作,但是它唯一具有的功能是“文本”,它仅接受字符串值。我想将HTML提交给jspdf,而不是文本。 问题答案: jsPDF可以使用插件。 为了使其能够打印HTML,您

  • 问题内容: 我正在d3可视化中尝试使用angularjs 工具提示指令,所以我有类似 但是,工具提示未显示。我需要什么吗?我也尝试过将它包装起来,但这没有用。 问题答案: 我有一个类似的问题,是的,用解决了。我假设您的d3代码位于自定义指令中。从那里可以添加工具提示属性,删除自定义指令属性,以便$ compile仅运行一次,然后调用$ compile: $ compile服务可确保使用指令添加的属

  • 我想从HTML模板中提取一部分,并将其转换为PDF文件,以便用户可以选择下载。(例如,单击按钮后)。 我找到了一个名为jsPDF的库,我将如何在Angular2应用程序(RC4)中使用jsPDF? 谢谢你

  • pdfmake 是基于客户端服务器的 PDF 打印解决方案,完全基于 JavaScript 开发。提供强大的排版引擎 安装: client-version bower install pdfmakeserver-version npm install pdfmake 特性: line-wrapping, text-alignments (left, right, centered, justifi

  • 我知道如何生成单个超文本标记语言页面。我想知道如何从多个超文本标记语言页面生成的pdf生成单个pdf页面。 例如,有和另一个文件我可以生成单独的pdf文件和分别来自html。我可以将它们写入文件系统,然后像iTextConcatenate示例中那样连接它们。 我只是想知道我是否可以在不将它们写入文件系统的情况下动态地组合此操作。我无法识别丢失的链接

  • 问题内容: 我正在使用wkhtmltopdf将PDF文件转换为HTML文件;它提供了令人惊讶的良好结果,完全像WebKit那样呈现PDF。 我正在使用GoogleWeb字体使用户可以自定义他们编辑的文档的外观,从而使他们可以在几种字体之间进行选择。它也可以 在浏览器中 完美运行。 问题是,使用wkhtmltopdf将此类HTML文件转换为PDF时,我无法使用Google字体。我读过其他人也有同样的