问题描述:
AR导出字体问题
问题回答:
您好,AR目前字体遵循这个原则:
首先是web端的,web端单元格,表格这些整体格式是后端渲染,然后具体字体会给前端,也就是设置前端字体的font-family,这个浏览器会走客户端的,浏览器也有自己的策略,如果字体没有,会走默认浏览器设置字体,这个每个浏览器不一样。但是图表,条码等其他组件,因为是服务端渲染,传给前端图片,所以这些里面的字体,走的是服务端的。
其次是您说的sdk导出,这个因为是服务端导出,一定是严格遵守报表设计,走的是服务端字体,所以如果出现乱码等,一定也都是服务端没有字体,或者字体名称设置不一样。这个就得确保报表文件里面设置的字体不仅有,还得字体名称一致,让服务器能识别。然后代码导出有个特殊的,我们为了放置乱码的情况,有个错误字体默认选项:
- Settings pdfSetting = new Settings();
- pdfSetting.FallbackFonts = "";
- pageReport.Document.Render(pdfRenderingExtension, outputProvider, pdfSetting);
复制代码 也就是在导出的时候,如果出现服务器没有的字体,会走 FallbackFonts 这个里面的字体,然后这个字体根据服务器走,一般是Arial。
所以您出现这个情况,肯定还是字体没有和服务器上对应上,这个才会导致走 FallbackFonts 。
|