注册PDF字体/注册默认备选字体
场景:导出PDF时发现,文件中出现了乱码解决方案:注册相应字体或提供默认备选字体
在该例子中,A1单元格字体为”仿宋_GB2312“, A2单元格字体为”方正小标宋“。在未注册字体的情况下,导出PDF会出现乱码。
此时需要注册表格中用到的字体。
;(async function getFontFile(){
// 从服务端获取字体文件(字体文件路径需要替换成自己项目真是的路径)
const res = await fetch('http://foo.bar.com/fonts/仿宋_GB2312.ttf');
const fontBuffer = await res.arrayBuffer();
// 注册字体
GC.Spread.Sheets.PDF.PDFFontsManager.registerFont("仿宋_GB2312", {
"normal": fontBuffer,
});
})();
如果想要解决这个问题,显而易见的方法就是,注册“方正小标宋“这个字体。有些时候无法预知表格中会用到哪些字体,但又希望导出PDF时,能够正常显示内容(仅内容、忽略字体),此时可以注册一个默认备选字体。
;(async function getFontFile(){
// 从服务端获取字体文件
const res = await fetch('./仿宋_GB2312.ttf');
const fontBuffer = await res.arrayBuffer();
// 注册字体
GC.Spread.Sheets.PDF.PDFFontsManager.registerFont("仿宋_GB2312", {
"normal": fontBuffer,
});
// 备选中文字体
GC.Spread.Sheets.PDF.PDFFontsManager.fallbackFont = function (font) {
return fontBuffer;
}
})();此时发现,虽然A2用到的”方正小标宋“字体没有注册,但PDF中已通过”仿宋_GB2312“来呈现它的内容了。
页:
[1]