在MEAN堆栈项目的客户端包括pdfmake

Including pdfmake in client side of MEAN-stack project

本文关键字:客户端 包括 pdfmake 项目 MEAN 堆栈      更新时间:2023-12-28

我有一个建立在MEAN.io堆栈上的网站,正在尝试使用pdfmake在客户端生成PDF文件。可以使用bower安装pdfmake(看起来他们使用browserfy生成客户端版本)。

我正在努力让它发挥作用。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能够在软件包/system/public/controllers/index.js中使用,我将不胜感激。

我最近也遇到了类似的问题。这似乎是因为pdfmake还不能"浏览"。经过大量的故障排除,我能够通过在我的构建目录中的脚本标记简单地包含两个客户端脚本pdfmake.min.jsvfs_fonts.js来完成它的工作。就是这样。

尝试将这两个脚本标记从bower_components目录移到构建目录中。确保它们在bundle.js之前,或者通常在任何需要pdfmake的脚本之前。

我不完全理解捆绑脚本是如何看到这两个文件创建的全局对象的,但我认为这是因为他们将pdfMake设置为窗口对象:

vfs_fonts.js文件的启动方式如下:)

window.pdfMake = window.pdfMake || {}; window.pdfMake.vfs

由于Browserify将全局对象设置为window,因此这种方法似乎有效。(尽管我不完全理解为什么……在他们的回购中看到这个Github问题,以获得更多解释和去全球化的npm包。)

这是我能找到的另一个相关帖子。