大家好,我是米娅
我尝试了很多种kendo 上PDF的导出,包括Grid与整个div界面。都不支持中文,它官网上面的都是支持英文的,我导出的中文都是这种(□□□)方框,数字和英文字符都能正确的导出,
关于Kendo 导出PDF不支持中文的方法,
我是这样写的:
<button type="button" class="k-button" onclick="getPDF('#All')" >导出PDF</button><div id="All">这里放table的一些字段或者grid都可以</div>
<script>
function getPDF(selector) {
kendo.drawing.drawDOM($(selector)).then(function (group) {
kendo.drawing.pdf.saveAs(group, "上海沪试报价单.pdf");
});
}
</script>
其中我最纠结的就是这里的字体:
<script> kendo.pdf.defineFont({ "DejaVu Sans" : "https://kendo.cdn.telerik.com/2016.2.607/styles/fonts/DejaVu/DejaVuSans.ttf", "DejaVu Sans|Bold" : "https://kendo.cdn.telerik.com/2016.2.607/styles/fonts/DejaVu/DejaVuSans-Bold.ttf", "DejaVu Sans|Bold|Italic" : "https://kendo.cdn.telerik.com/2016.2.607/styles/fonts/DejaVu/DejaVuSans-Oblique.ttf", "DejaVu Sans|Italic" : "https://kendo.cdn.telerik.com/2016.2.607/styles/fonts/DejaVu/DejaVuSans-Oblique.ttf" }); </script>
但是我想出了一个我自认为对的方法:
我把微软雅黑的MSYH.TTF和MSYHBD.TTF的名字重命名为DejaVu文件夹下的DejaVuSans.TTF和DejaVuSans-Bold.TTF
简单一点来说,就是把微软雅黑的字体复制到Dejavu的文件夹下,然后把微软雅黑.TTF修改成DejaVuSans.TTF。
结果就可以了。