跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. OpenERP 6.0.3 on Ubuntu 10.04 LTS Server中文pdf报表的一种解决方法

OpenERP 6.0.3 on Ubuntu 10.04 LTS Server中文pdf报表的一种解决方法

已定时 已固定 已锁定 已移动 Odoo 安装指南
12 帖子 10 发布者 17.3k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • W 离线
    W 离线
    winson97
    写于 最后由 编辑
    #1

    最近在 Ubuntu 10.04 LTS Server上安装了OpenERP 6.0.3

    安装方法见:http://www.theopensourcerer.com/2011/04/19/how-to-install-openerp-6-on-ubuntu-10-04-lts-server-part-1/

    安装完毕遇到不少问题,在论坛爬爬基本都找到解决方法,但“报表的中文”黑框框问题按照论坛中的方法测试了一下没解决,

    爬文得知:OpenERP 从6.0起为了解决PDF报表unicode字体的问题(主要集中在亚洲,中国、日本、越南等)增加了server/bin/report/render/rml2pdf/customfonts.py 

    字体 Helvetica 被 DejaVu Sans所取代(也指出了不同系统下字体文件存放的位置),下面的代码应该是这个意思吧(不好意思,对代码不太了解):

    CustomTTFonts = [ ('Helvetica',"DejaVu Sans", "DejaVuSans.ttf", 'normal'),
            ('Helvetica',"DejaVu Sans Bold", "DejaVuSans-Bold.ttf", 'bold'),
            ('Helvetica',"DejaVu Sans Oblique", "DejaVuSans-Oblique.ttf", 'italic'),
            ('Helvetica',"DejaVu Sans BoldOblique", "DejaVuSans-BoldOblique.ttf", 'bolditalic'),
            ('Times',"Liberation Serif", "LiberationSerif-Regular.ttf", 'normal'),
            ('Times',"Liberation Serif Bold", "LiberationSerif-Bold.ttf", 'bold'),
            ('Times',"Liberation Serif Italic", "LiberationSerif-Italic.ttf", 'italic'),
            ('Times',"Liberation Serif BoldItalic", "LiberationSerif-BoldItalic.ttf", 'bolditalic'),
            ('Times-Roman',"Liberation Serif", "LiberationSerif-Regular.ttf", 'normal'),
            ('Times-Roman',"Liberation Serif Bold", "LiberationSerif-Bold.ttf", 'bold'),
            ('Times-Roman',"Liberation Serif Italic", "LiberationSerif-Italic.ttf", 'italic'),
            ('Times-Roman',"Liberation Serif BoldItalic", "LiberationSerif-BoldItalic.ttf", 'bolditalic'),
            ('Courier',"FreeMono", "FreeMono.ttf", 'normal'),
            ('Courier',"FreeMono Bold", "FreeMonoBold.ttf", 'bold'),
            ('Courier',"FreeMono Oblique", "FreeMonoOblique.ttf", 'italic'),
            ('Courier',"FreeMono BoldOblique", "FreeMonoBoldOblique.ttf", 'bolditalic'),]


    TTFSearchPath_Linux = [
                '/usr/share/fonts/truetype', # SuSE
                '/usr/share/fonts/dejavu', '/usr/share/fonts/liberation', # Fedora, RHEL
                '/usr/share/fonts/truetype/', # Ubuntu,
                '/usr/share/fonts/TTF/
    ', # at Mandriva/Mageia
                ]

    TTFSearchPath_Windows = [
                'c:/winnt/fonts',
                'c:/windows/fonts'
                ]

    TTFSearchPath_Darwin = [
                #mac os X - from
                #http://developer.apple.com/technotes/tn/tn2024.html
                '~/Library/Fonts',
                '/Library/Fonts',
                '/Network/Library/Fonts',
                '/System/Library/Fonts',
                ]

    参考网站的方法:[u]最简单的方法是拷贝simsun.ttf 文件到字体文件夹,然后分别改名为“DejaVuSans.ttf”,
    “DejaVuSans-Bold.ttf”,“DejaVuSans-Oblique.ttf”,“DejaVuSans-BoldOblique.ttf”。这样,全部报表都可以正常使用中文了。[/u]

    这个方法打印报表时出错:[u]ValueError: redefining named object: 'toUnicodeCMap:AAAAAA[/u]

    估计是映射到unicode中文字体时出错。

    有可能这个方法是在OPENERP服务器安装在windows上有效吧,在ubuntu无效。

    查阅了不少文档,在ubuntu系统中/usr/share/fonts/truetype/ttf-dejavu路径下放的是unicode的字体DejaVuSans.ttf,这个字体中并没有相对应的中文字体在里面,那么网上有没有含中文字体的DejaVuSans.ttf呢?
    在google查询 还真有:
    [u][原创]史上最强(伪)的合成字体DejaVuSansYuanTi(http://forum.ubuntu.org.cn/viewtopic.php?f=8&t=110509&sid=26756e767990b4115456acc9f42f1bbd)[/u]

    此合成字体的下载地址:http://code.google.com/p/qinsdisk/downloads/list

    下载后对照上面代码,把
    DejaVuSansYuanTi-Regular.ttf 改为 DejaVuSans.ttf”,
    DejaVuSansYuanTi-Bold.ttf 改为 “DejaVuSans-Bold.ttf”,
    DejaVuSansYuanTi-Italic.ttf 改为“DejaVuSans-Oblique.ttf”,
    DejaVuSansYuanTi-BoldItalic.ttf 改为“DejaVuSans-BoldOblique.ttf

    然后把这四个字体上传到服务器usr/share/fonts/truetype/ttf-dejavu目录中,重启服务器,测试报表,中文正常,表头页脚中文也显示正常!

    以上方法没有安装中文化模块base_report_cn,也不需要修改Company的表头表尾!

    写文不多,不知有否表达清楚?希望有用。

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

      不错...感谢分享了.......

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

        解决了我的问题,感谢!

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

          [quote author=winson97 link=topic=2622.msg8723#msg8723 date=1318003455]
          此合成字体的下载地址:http://code.google.com/p/qinsdisk/downloads/list

          下载后对照上面代码,把
          DejaVuSansYuanTi-Regular.ttf 改为 DejaVuSans.ttf”,
          DejaVuSansYuanTi-Bold.ttf 改为 “DejaVuSans-Bold.ttf”,
          DejaVuSansYuanTi-Italic.ttf 改为“DejaVuSans-Oblique.ttf”,
          DejaVuSansYuanTi-BoldItalic.ttf 改为“DejaVuSans-BoldOblique.ttf

          然后把这四个字体上传到服务器usr/share/fonts/truetype/ttf-dejavu目录中,重启服务器,测试报表,中文正常,表头页脚中文也显示正常!
          [/quote]

          想试一下这种方法。请问对于 Windows7,上面提到的中文字体应该复制到什么目录中?

          1 条回复 最后回复
          0
          • A 离线
            A 离线
            Astra
            写于 最后由 编辑
            #5

            对Windows7,将这四种字体复制到windows/fonts目录中,重启动服务器,看了一些pdf报表,中文正常。

            但产品标签(labels)的pdf文件的中文产品名称还是显示为黑方块。有没有解决的办法?

            1 条回复 最后回复
            0
            • L 离线
              L 离线
              lu.zwqq.com
              写于 最后由 编辑
              #6

              此方法在XP及win7下打印,打印标签(如楼上提到的产品标签),还为方块,其他打印目前测试正常。

              1 条回复 最后回复
              0
              • S 离线
                S 离线
                smkke
                写于 最后由 编辑
                #7

                打印标签的时候还是不行,报表没问题了!

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

                  有没有真正解决过centos 下报表乱码的问题的?以上的目录在centos下没有找到,在ubuntu 下的确可以

                  1 条回复 最后回复
                  0
                  • digitalsatoriD 离线
                    digitalsatoriD 离线
                    digitalsatori 管理员
                    写于 最后由 编辑
                    #9

                    没有尝试我们提供的最新解决方案吗? [检测到链接无效,已移除]

                    【上海先安科技】(tony AT openerp.cn)

                    1 条回复 最后回复
                    0
                    • 5 离线
                      5 离线
                      534659123
                      写于 最后由 编辑
                      #10

                      那种根本不行。。。每次重启都要重新设置打印字体

                      1 条回复 最后回复
                      0
                      • JoshuaJ 离线
                        JoshuaJ 离线
                        Joshua 管理员
                        写于 最后由 编辑
                        #11

                        每次都要重新设置?这个可能是之前的bug,你试试现在下载的,估计已经更新了。

                        【上海先安科技】(joshua AT openerp.cn),欢迎关注公众号:openerp_cn

                        1 条回复 最后回复
                        0

                        • 登录

                        • 没有帐号? 注册

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