我有下表使用datatables plugin进行分页,排序和导出。

一切正常,除了我的check mark中的html不会随pdf导出,而随excel导出。我想使此工作正常进行,因为我将删除checkbox元素,而希望单击表格单元格并切换check mark是否存在。我真的想避免在表/导出的任何部分中使用'Y'/'N'作为指示符。

有没有人遇到过这个问题或可以提供任何帮助,我的直觉告诉我,这与PDF导出库中的字符编码有关,但我不想只是进入并开始编辑库文件,因为这个问题(如果我需要升级lib,可能会重复)。另外,我不确定要寻找什么。

的HTML
javascript - 如何在jQuery数据表PDF导出中显示复选标记字符-LMLPHP

电子表格
javascript - 如何在jQuery数据表PDF导出中显示复选标记字符-LMLPHP

PDF格式
javascript - 如何在jQuery数据表PDF导出中显示复选标记字符-LMLPHP

最佳答案

问题:

jQuery的Datatables使用pdfmake库将其导出为PDF。

pdfmake仅使用一种字体“ Roboto”作为其文本字体,因此它的字符集不支持“✓”符号。

您可以在此处查看所有字符'Roboto',pdfmake和随后的Datatables支持:https://www.fontspace.com/font-charmap/21071

在以下位置找到此信息:https://github.com/bpampuch/pdfmake/issues/1478

解:

您可以使用pdfmake将Datatables导出为pdf时使用的字体更改为支持字符符号“✓”的字体


创建一个包含字体文件的新vfs_fonts.js文件


在pdfMake代码目录中创建examples / fonts子目录(如果尚不存在)。
将您的字体(以及您希望嵌入的其他文件)复制到examples / fonts子目录中。
运行npm install(从pdfMake目录中)以确保已安装所有必备模块。
运行gulp buildFonts以创建一个新的build / vfs_fonts.js(您可以更新gulpfile.js来更改基本目录路径或为buildFonts任务添加替代配置)。
在代码中包含新的build / vfs_fonts.js文件(以与您包含pdfmake.js或pdfmake.min.js相同的方式)。
上面的buildFonts操作将示例/字体中的所有文件嵌入到本地键/值变量pdfMake.vfs中-不仅是字体。这意味着您可以将图像放入其中,运行gulp buildFonts,然后在doc-definition对象中按文件名引用它们。

在文档中包含这个新创建的字体文件

<script type="text/javascript" src="./pdfmake-0.1.37/vfs_fonts.js"></script>

将字体添加到pdfmake

pdfMake.fonts = {
    Arial: {
            normal: 'arial.ttf',
            bold: 'arialbd.ttf',
            italics: 'ariali.ttf',
            bolditalics: 'arialbi.ttf'
    }
};

将字体添加到数据表

buttons = [
    {
        customize: function (doc) {
            doc.defaultStyle =
            {
                font: 'Arial'
            }
        }
    }
]



一些有用的链接:

DataTables & PDFmake-有关如何为数据表设置新字体的问题

https://datatables.net/forums/discussion/51827/how-i-change-font-family-in-pdf-export-关于如何更改字体系列的数据表社区问题。

关于javascript - 如何在jQuery数据表PDF导出中显示复选标记字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36089228/

10-12 07:36