我有下表使用datatables plugin进行分页,排序和导出。
一切正常,除了我的check mark
中的html
不会随pdf
导出,而随excel
导出。我想使此工作正常进行,因为我将删除checkbox
元素,而希望单击表格单元格并切换check mark
是否存在。我真的想避免在表/导出的任何部分中使用'Y'/'N'
作为指示符。
有没有人遇到过这个问题或可以提供任何帮助,我的直觉告诉我,这与PDF导出库中的字符编码有关,但我不想只是进入并开始编辑库文件,因为这个问题(如果我需要升级lib,可能会重复)。另外,我不确定要寻找什么。
的HTML
电子表格
PDF格式
最佳答案
问题:
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/