我有一个建立在MEAN.io堆栈上的网站,我正在尝试使用pdfmake在客户端生成PDF文件。可以用bower安装pdfmake(看起来他们使用browserify来生成客户端版本)。
我正在努力让它发挥作用。注入pdfmake不起作用(我认为无法找到)或pdfmake对象未定义(如果我不将pdfmake添加为依赖项)。我认为pdfmake需要以某种方式打包以使其可访问,但我不知道如何。
在config / assets.json中我添加了:
"bower_components/pdfmake/build/pdfmake.js"
在我想要使用pdfmake的JS文件对应的HTML中,我添加了:
<script src="bower_components/pdfmake/build/pdfmake.js"></script>
<script src="bower_components/pdfmake/build/vfs_fonts.js"></script>
我已在Github上设置了基本版本。如果有人能向我解释如何使pdfmake可用于package / system / public / controllers / index.js,我将非常感激。
答案 0 :(得分:0)
我最近遇到了类似的问题。这似乎来自于pdfmake还没有&#34; browserfiable。&#34;经过多次故障排除后,我能够通过在构建目录中通过脚本标记简单地包含两个客户端脚本pdfmake.min.js
和vfs_fonts.js
来实现它。就是这样。
尝试将两个脚本标记移出bower_components
目录并进入构建目录。确保他们在bundle.js
之前,或者通常需要pdfmake的脚本。
我不完全理解捆绑脚本如何能够看到这两个文件创建的全局对象,但我认为这是因为他们将pdfMake设置为窗口对象:
(vfs_fonts.js
文件的开头如下:)
window.pdfMake = window.pdfMake || {}; window.pdfMake.vfs
由于Browserify将全局对象设置为window
,因此这种方法似乎有效。 (虽然我不完全理解为什么...... see this Github issue在他们的回购中获得更多解释和the deglobalify npm包。)