跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. TinyERP linux下中文打印问题

TinyERP linux下中文打印问题

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

    linux下中文打印问题还没解决,谁给帮帮忙,参看了官方论坛,也没弄明白。

    问题一:2. copy it to the folder tiny/bin/reportlab/fonts/ 我的系统里没有这个目录(自己建了一个)
    问题二:find ./bin/addons -name "*.rml" | xargs grep -l 'Times-Roman' | xargs sed -i 's/Times-Roman/Arial Unicode MS/g';.........................这些 命令被执行后返回的提示说:没有输入文件。

    参见: tinyerp.org/forum/topic1943.html

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

      解答一:它的这个说明是针对reportlab1.x的(如果我记得没错的话),现在我们用的是reportlab2.x,这样你可以把字体文件拷贝到reportlab的目录下,这个目录是在python的安装目录下的site-package>reportlab>font目录。当然你将字体文件放在tiny/bin/reportlab/fonts/下也没有问题,只要用 ln 命令做一个链接到上面所述的目录下就可以了。还有一个办法就是将字体文件拷贝到linux的字体目录下,具体可以用google查一下。
      另:要检查python的安装目录,可以用的名令有:type, which, whereis, 比如:

      type python
      

      解答二:要理解这行命令的意思是什么。首先用find命令找出以rml结尾的所有文件,并将这些找到的文件作为grep的输入,用grep命令找到所有这些文件中使用Times-Roman字体的地方,然后用sed的替换命令将所有Times-Roman替换为Arial Unicode MS。这样就完成了对这些字体的替换工作。 我注意到这些命令行中好象有一条到两条确实会出现你说的情况,那是因为命令没有找到相应的文件或在文件中没有找到相应的字体,只要你的命令没输入错误,这个也很正常。

      最后要说明一下这种替换report所使用的文件的字体的办法对解决中文pdfreport并不彻底。因为如果你安装了新的模块,而新的模块中的report中的字体又是用西文字体定义的,那么你又要进行这样的手工替换。这个在我们发布的V0.33版本中也同样存在这样的问题,我们只是替换了现存的字体文件。

      在未来发布的版本里,我会制作一个中文unicode pdfreport的模块,这样无论你导入多少新的pdf report都能支持中文unicode。这样的模块针对西方文字的已经有了,遗憾的是还不能支持中文。我会加尽快加以改进以求完美支持中文。

      [[i] 本帖最后由 digitalsatori 于 2008-1-13 13:14 编辑 [/i]]

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

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

        用如下命令替换成功,可惜打印还是不灵。
        还差什么?[code]find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Times-Roman | xargs sed -i s/Times-Roman/SimSun/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name "
        .rml" | xargs grep -l Times-BoldItalic | xargs sed -i s/Times-BoldItalic/SimSun/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Times-Bold | xargs sed -i s/Times-Bold/SimSun/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name "
        .rml" | xargs grep -l Times-Italic | xargs sed -i s/Times-Italic/SimSun/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Helvetica-BoldOblique | xargs sed -i s/Helvetica-BoldOblique/SimHei/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name "
        .xsl" | xargs grep -l Helvetica-BoldOblique | xargs sed -i s/Helvetica-BoldOblique/SimHei/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name ".rml" | xargs grep -l Helvetica-Bold | xargs sed -i s/Helvetica-Bold/SimHei/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name "
        .xsl" | xargs grep -l Helvetica-Bold | xargs sed -i s/Helvetica-Bold/SimHei/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name ".xsl" | xargs grep -l Helvetica-Oblique | xargs sed -i s/Helvetica-Oblique/SimHei/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name "
        .rml" | xargs grep -l Helvetica | xargs sed -i s/Helvetica/SimHei/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name ".xsl" | xargs grep -l Helvetica | xargs sed -i s/Helvetica/SimHei/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name "
        .rml" | xargs grep -l Courier-Bold | xargs sed -i s/Courier-Bold/SimYou/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name ".xsl" | xargs grep -l Courier | xargs sed -i s/Courier/SimYou/g;
        find ~/tinyerp-server-4.2.1/bin/addons -name "
        .rml" | xargs grep -l Courier | xargs sed -i s/Courier/SimYou/g ;[/code]

        init.py文件已经改成这样

        [code]from trml2pdf import parseString

        from reportlab.lib.fonts import addMapping
        from reportlab.pdfbase import pdfmetrics
        from reportlab.pdfbase.ttfonts import TTFont
        from reportlab.pdfbase.cidfonts import CIDFont, findCMapFile
        from reportlab.lib.fonts import addMapping

        pdfmetrics.registerFont(TTFont('simsun','simsun.ttc'))

        for facename in ['simsun']:
        addMapping(facename, 0, 0, facename) #normal
        addMapping(facename, 0, 1, facename) #italic
        addMapping(facename, 1, 0, facename) #bold
        addMapping(facename, 1, 1, facename) #italic and bold [/code]

        [[i] 本帖最后由 ooop 于 2008-1-16 17:27 编辑 [/i]]

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

          参照wiki里的说明修改trml2pdf.py文件

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

          1 条回复 最后回复
          0

          • 登录

          • 没有帐号? 注册

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