用开源字体渲染OFD文档,搞定了

1 阅读1分钟

问题起因

由于字体版权等问题,有大量的OFD文档中未嵌入字体,只是进行了字体声明。这给OFD文档的预览显示带来很大的麻烦。

2df29db3-0ee8-4ec8-8cdb-30bbd90901e0.png

通常处理方案

环境解决方案问题
Windows直接调用系统字体
Linux复制Windows系统下字体版权问题
Web端复制Windows系统下字体到服务器,自动下载到客户端版权问题;字体文件大,用户体验差

XDOC的处理方案

XDOC基于Java自研了OFD渲染引擎。在服务器端使用开源字体将OFD渲染为PDF后,在WEB端进行显示。服务器端使用开源字体无版权问题,WEB端直接显示嵌入字体后的结果。

渲染过程中遇到的比较大问题是由于西文字体的宽度不同,导致文本出现重叠。XDOC的解决方法是利用文本【DeltaX】属性,做字体宽度自适应。

3a7161d867f4b81360ca0a072ba4d5f7.png

180ddef80e2f6cace865ea715b4b7958.png

更好的方法是直接用开源等宽西文字体进行渲染。

效果展示

20260403134314_206_76.png

这个文档渲染使用到的开源字体有:思源宋体、思源等宽(西文)、文鼎PL简中楷。

可以打开view.xdocin.com,亲自试试OFD预览效果