Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

关于OE报表中文黑方块的最官方解决方案.



  • 最近研究报表. 在解决中文黑方块问题时, 想在官方的 trml2pdf 中加入 关于 l10n_cn 字体修正部分.

    最后发现 在 原 trml2pdf 代码中, 早已有了关于 TTF 字体的支持选项. 然后 分析源代码得出 关于 中文报表 黑方块 最权威的官方解决方案就是.

    在你生成的 rml 的 <document>节中添加(这个可以修改 OE 的 rml_template 这个需要哪位大大继续深入研究)

    <br /><br />&lt;docinit&gt;<br />	&lt;registerFont fontName=&quot;SimHei&quot; fontFile=&quot;simhei.ttf&quot; /&gt;<br />	&lt;registerFont fontName=&quot;SimSun&quot; fontFile=&quot;simsun.ttc&quot; /&gt;<br />&lt;/docinit&gt;<br /><br />
    



    其中
    fontName 就是你 rml 中使用的字体名.  fontFile 即为 字体对应的 TrueType 字体文件名.
    而 字体文件, 你可以放到你的 openerp-server 的很多可选文件夹中.

    具体搜索的文件夹在 reportLab 模块 的 rl_config.py 文件中 记录. 即:

    <br /><br /># places to look for TT Font information<br />TTFSearchPath = (<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;c:/winnt/fonts&#039;,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;c:/windows/fonts&#039;,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;/usr/lib/X11/fonts/TrueType/&#039;,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;%(REPORTLAB_DIR)s/fonts&#039;,&nbsp; &nbsp; &nbsp; #special<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;%(REPORTLAB_DIR)s/../fonts&#039;,&nbsp;  #special<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;%(REPORTLAB_DIR)s/../../fonts&#039;,#special<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;%(HOME)s/fonts&#039;,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;  #special<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #mac os X - from<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #http://developer.apple.com/technotes/tn/tn2024.html<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;~/Library/Fonts&#039;,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;/Library/Fonts&#039;,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;/Network/Library/Fonts&#039;,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#039;/System/Library/Fonts&#039;,<br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; )<br />
    



    这样, 你就可以在你的rml中使用你自己的 TrueType 字体了.



  • l10n_cn 是替换系统中已有的报表字体以解决中文现实问题。
    您的方案适用于自己新开发的报表。
    当然,一个一个改原有的报表RML... 也行。

    不过你的方案就让新开发报表不必局限于宋体和黑体两种中文字体了,非常有意义!



  • 还是用程序检测一下 windows 的目录,别硬编码 "c:/windows"



  • 或者做个oe模块,在 init.py 里就刷流氓把 rl_config.py 的东西替换掉



  • 顺藤摸瓜,找到了 centos 在这里¨/usr/lib/python2.7/site-packages/openerp-6.1_20120709_233338-py2.7.egg/openerp/report/render/rml2pdf¨



  • 谢谢分享,该加精华