requirejs,datatables和pdfmake - 在虚拟文件系统中找不到未捕获的文件'Roboto-Regular.ttf'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了requirejs,datatables和pdfmake - 在虚拟文件系统中找不到未捕获的文件'Roboto-Regular.ttf'相关的知识,希望对你有一定的参考价值。

这是我的代码。

requirejs.config({
 "paths":{
'pdfmake': '//cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/pdfmake.min',
},

"shim": {
'pdfmake': {
            deps: ["//cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.32/vfs_fonts.js"]
        },
}

});

在数据表中 - https://datatables.net/extensions/buttons/examples/html5/pdfMessage.html

requirejs(['pdfmake'],function(){
 $('#example').DataTable( {
        dom: 'Bfrtip',
        buttons: [
            {
                extend: 'pdfhtml5',
                messageTop: 'PDF created by PDFMake with Buttons for DataTables.'
            }
        ]
    } );

});

在检查中我看到文件已加载,但是当我创建pdf - get

Uncaught File 'Roboto-Regular.ttf' not found in virtual file system

更新1我尝试创建实例但有一些错误... https://jsfiddle.net/9gkat5dc/13/

无法加载'https://cdn.datatables.net/buttons/1.4.2/swf/flashExport.swf'作为插件,因为插件加载到的框架是沙箱。

答案
"shim": {
    "vfs_fonts": ["pdfmake"]
},

应该解决这个问题(在我的安装中确实如此)。 vfs_fonts需要加载AFTER pdfmake,而不是之前。据我了解你的配置,你的pdfmake依赖于vfs_fonts。

编辑:我看到你将URL添加到vfs_fonts作为dep。我在路径数组中完成了这个。

以上是关于requirejs,datatables和pdfmake - 在虚拟文件系统中找不到未捕获的文件'Roboto-Regular.ttf'的主要内容,如果未能解决你的问题,请参考以下文章

带有 RequireJS 的数据表按钮扩展

RequireJS:“requirejs”和“require”函数之间的区别

Requirejs常用配置和应用

requireJS

requireJS的匿名模块和命名模块的区别和最佳实践

RequireJS和AMD规范