关于OE报表中文黑方块的最官方解决方案.
-
最近研究报表. 在解决中文黑方块问题时, 想在官方的 trml2pdf 中加入 关于 l10n_cn 字体修正部分.
最后发现 在 原 trml2pdf 代码中, 早已有了关于 TTF 字体的支持选项. 然后 分析源代码得出 关于 中文报表 黑方块 最权威的官方解决方案就是.
在你生成的 rml 的 <document>节中添加(这个可以修改 OE 的 rml_template 这个需要哪位大大继续深入研究)<br /><br /><docinit><br /> <registerFont fontName="SimHei" fontFile="simhei.ttf" /><br /> <registerFont fontName="SimSun" fontFile="simsun.ttc" /><br /></docinit><br /><br />
其中
fontName 就是你 rml 中使用的字体名. fontFile 即为 字体对应的 TrueType 字体文件名.
而 字体文件, 你可以放到你的 openerp-server 的很多可选文件夹中.
具体搜索的文件夹在 reportLab 模块 的 rl_config.py 文件中 记录. 即:<br /><br /># places to look for TT Font information<br />TTFSearchPath = (<br /> 'c:/winnt/fonts',<br /> 'c:/windows/fonts',<br /> '/usr/lib/X11/fonts/TrueType/',<br /> '%(REPORTLAB_DIR)s/fonts', #special<br /> '%(REPORTLAB_DIR)s/../fonts', #special<br /> '%(REPORTLAB_DIR)s/../../fonts',#special<br /> '%(HOME)s/fonts', #special<br /> #mac os X - from<br /> #http://developer.apple.com/technotes/tn/tn2024.html<br /> '~/Library/Fonts',<br /> '/Library/Fonts',<br /> '/Network/Library/Fonts',<br /> '/System/Library/Fonts',<br /> <br /> )<br />
这样, 你就可以在你的rml中使用你自己的 TrueType 字体了. -
顺藤摸瓜,找到了 centos 在这里¨/usr/lib/python2.7/site-packages/openerp-6.1_20120709_233338-py2.7.egg/openerp/report/render/rml2pdf¨