跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. PDF 报表汉化步骤

PDF 报表汉化步骤

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

    太需要你这样的强人了。谢谢分享。

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

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

      报表的页眉和页脚在addons/custom/corporate_rml_header.rml

      [[i] 本帖最后由 liuyuan_jq 于 2008-10-10 14:17 编辑 [/i]]

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

        替换的工作直接交给linux完成。

        1. 获取中文字体文件 (本例中使用 simsun.ttc (全称: "SimSun"))

        2. 复制至 tiny/bin/reportlab/fonts/
          这样你可以把字体文件拷贝到reportlab的目录下,
          这个目录是在python的安装目录下的site-package>reportlab>font目录。
          当然你将字体文件放在tiny/bin/reportlab/fonts/下也没有问题,

        3. 编辑 tiny/report/render/rml2pdf/trml2pdf.py, 插入以下代码:

        encoding = 'UTF-8'

        from reportlab.lib.enums import TA_LEFT, TA_RIGHT, TA_CENTER, TA_JUSTIFY
        from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle, StyleSheet1

        def getZhSampleStyleSheet():
        """Returns a chinese stylesheet object"""
        stylesheet = StyleSheet1()
        stylesheet.add(ParagraphStyle(name='Normal',fontName='SimSun',fontSize=10,leading=12))
        stylesheet.add(ParagraphStyle(name='BodyText',parent=stylesheet['Normal'],spaceBefore=6))
        stylesheet.add(ParagraphStyle(name='Italic',parent=stylesheet['BodyText'],fontName='SimSun'))
        stylesheet.add(ParagraphStyle(name='Heading1',parent=stylesheet['Normal'],fontName='SimSun',fontSize=18,leading=22,spaceAfter=6),alias='h1')

         stylesheet.add(ParagraphStyle(name='Title',parent=stylesheet['Normal'],fontName='SimSun',fontSize=18,leading=22,alignment=TA_CENTER,spaceAfter=6),alias='title')
         stylesheet.add(ParagraphStyle(name='Heading2',parent=stylesheet['Normal'],fontName='SimSun',fontSize=14,leading=18,spaceBefore=12,spaceAfter=6),alias='h2')
         stylesheet.add(ParagraphStyle(name='Heading3',parent=stylesheet['Normal'],fontName='SimSun',fontSize=12,leading=14,spaceBefore=12,spaceAfter=6),alias='h3')
         stylesheet.add(ParagraphStyle(name='Bullet',parent=stylesheet['Normal'],firstLineIndent=0,spaceBefore=3),alias='bu')
         stylesheet.add(ParagraphStyle(name='Definition',parent=stylesheet['Normal'],firstLineIndent=0,leftIndent=36,bulletIndent=0,spaceBefore=6,bulletFontName='SimSun'),alias='df')
         stylesheet.add(ParagraphStyle(name='Code',parent=stylesheet['Normal'],fontName='SimSun',fontSize=8,leading=8.8,firstLineIndent=0,leftIndent=36))
         return stylesheet
        
        1. 在同样的文件中搜索 reportlab.lib.styles.getSampleStyleSheet() 用 getZhSampleStyleSheet() 替换(共六处)

        2. 编辑 tiny/report/render/rml2pdf/init.py, 插入以下代码:

        #add by chenzp
        from reportlab.lib.fonts import addMapping
        from reportlab.pdfbase import pdfmetrics
        from reportlab.pdfbase.ttfonts import TTFont
        from reportlab.pdfbase.cidfonts import UnicodeCIDFont, findCMapFile
        from reportlab.lib.fonts import addMapping

        pdfmetrics.registerFont(UnicodeCIDFont('STSong-Light'))
        pdfmetrics.registerFont(TTFont('SimSun','simsun.ttc'))
        pdfmetrics.registerFont(TTFont('SimHei','simhei.ttf'))
        pdfmetrics.registerFont(TTFont('SimKai','SIMKAI.TTF'))
        pdfmetrics.registerFont(TTFont('SimFang','SIMFANG.TTF'))
        pdfmetrics.registerFont(TTFont('SimLi','SIMLI.TTF'))
        pdfmetrics.registerFont(TTFont('SimYou','SIMYOU.TTF'))

        for facename in ['SimSun','SimHei','SimKai','SimFang','SimLi','SimYou']:
        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

        6.回到tinyerp的安装目录 。使用以下命令使所有的报表使用SimSun 字体:

        sed -i 's/Times-Roman/SimSun/g' find ./addons -name "*.rml"
        sed -i 's/Times-BoldItalic/SimSun/g' find ./addons -name "*.rml"
        sed -i 's/Times-Bold/SimSun/g' find ./addons -name "*.rml"
        sed -i 's/Times-Italic/SimSun/g' find ./addons -name "*.rml"
        sed -i 's/Helvetica-BoldOblique/SimSun/g' find ./addons -name "*.rml"

        sed -i 's/Helvetica-BoldOblique/SimSun/g' find ./addons -name "*.xsl"
        sed -i 's/Helvetica-Bold/SimSun/g' find ./addons -name "*.rml"
        sed -i 's/Helvetica-Bold/SimSun/g' find ./addons -name "*.xsl"
        sed -i 's/Helvetica-Oblique/SimSun/g' find ./addons -name "*.xsl"

        sed -i 's/Helvetica/SimSun/g' find ./addons -name "*.rml"
        sed -i 's/Helvetica/SimSun/g' find ./addons -name "*.xsl"
        sed -i 's/Courier-Bold/SimSun/g' find ./addons -name "*.rml"
        sed -i 's/Courier/SimSun/g' find ./addons -name "*.xsl"
        sed -i 's/Courier/SimSun/g' find ./addons -name "*.rml"

        搞定!

        [[i] 本帖最后由 openSourceERP 于 2008-10-13 13:58 编辑 [/i]]

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

          楼上的大哥,sed 命令是错的,把 Arial Unicode MS 改成 SimSun

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

            用论坛0.33不能用这个办法,因为版本不同功能上有区别。
            用0.33的需要手动用命令行转换sxw文件为rml
            在tiny_sxw2rml-0.9.3包里在目录执行如果不下载0.33的addonsbase_report_designerwizardtiny_sxw2rmltiny_sxw2rml-0.9.3下也有
            命令为:tiny_sxw2rml.py xyz.sxw>xyz,rml (xyz为文件名)

            不过要修改下normalized_oo2rml.xsl这个文件不然中文都成方块
            在文件的末尾处把所有Times-XXX都改成simsun

            [[i] 本帖最后由 simon 于 2008-10-10 14:49 编辑 [/i]]

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

              [quote]原帖由 [i]oldrev[/i] 于 2008-10-10 14:30 发表 www.shine-it.net/redirect.php?goto=findpost&pid=1411&ptid=333
              楼上的大哥,sed 命令是错的,把 Arial Unicode MS 改成 SimSun [/quote]
              lz 果然很强。有没有openoffice的报表插件?

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

                OpenOffice 插件似乎是要收费的,还不便宜

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

                  在 Windows 2003 Server 上运行可能会出现 reportlab 提示找不到字体的问题,解决的方法是把 simsun.ttc 和 simhei.ttc 放到 tinyerpquarkerpbinreportlabfonts 下

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

                    。。。。。

                    [[i] 本帖最后由 simon 于 2008-10-27 16:56 编辑 [/i]]

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

                      4.2.3的版本用上面的方法还是出现黑块和翻译的不完整,看图
                      那黑块就是有些中文出不来,同时部分翻译也不全
                      [attach]148[/attach]

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

                        原来是normalized_oo2rml文件的问题不过怪了这个问题不是转rml的吗怎么一改就好了呢。
                        不过printScreen还是有黑块

                        还有 opensourceERP[u]的方法才能消除黑块同时[/u]要注意修改的时候要注意那些字体的大小写

                        [attach]149[/attach]

                        [[i] 本帖最后由 simon 于 2008-11-4 16:01 编辑 [/i]]

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

                          楼主,pg8.3新建帐套的问题怎么解决的
                          偶是新手,tiny server用VMWare上的FreeBSD7.0,client用xp
                          pg8.3折腾了好久,现在是8.2

                          1 条回复 最后回复
                          0

                          • 登录

                          • 没有帐号? 注册

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