跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 开发与实施交流
  4. 关于OE报表中文黑方块的最官方解决方案.

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

已定时 已固定 已锁定 已移动 Odoo 开发与实施交流
7 帖子 5 发布者 7.7k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • M 离线
    M 离线
    mrshelly
    写于 最后由 编辑
    #1

    最近研究报表. 在解决中文黑方块问题时, 想在官方的 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 字体了.

    1 条回复 最后回复
    0
    • W 离线
      W 离线
      wjfonhand
      写于 最后由 编辑
      #2

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

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

      GoodERP -- Odoo China fork

      1 条回复 最后回复
      0
      • O 离线
        O 离线
        oldrev
        写于 最后由 编辑
        #3

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

        1 条回复 最后回复
        0
        • O 离线
          O 离线
          oldrev
          写于 最后由 编辑
          #4

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

          1 条回复 最后回复
          0
          • J 离线
            J 离线
            jinxiu89163.com
            写于 最后由 编辑
            #5

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

            1 条回复 最后回复
            0
            • M 离线
              M 离线
              matrowang
              写于 最后由 编辑
              #6

              谢谢分享,该加精华

              1 条回复 最后回复
              0

              • 登录

              • 没有帐号? 注册

              • 登录或注册以进行搜索。
              • 第一个帖子
                最后一个帖子
              0
              • 版块
              • 标签
              • 热门
              • 用户
              • 群组