跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • 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. 用v6无法打印中文汉字 (reportlab的问题)

用v6无法打印中文汉字 (reportlab的问题)

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

    Eric, 请下载这个模块 [检测到链接无效,已移除] br />内容与shelly推荐的l10n_cn是一样的,只是6.0里已经有模块使用了l10n_cn这个名字,恐怕会引起混淆。
    至于.rml文件我记得不需要改的,此模块的功能是替换原有pdf文件的字体。
    根据我在6.0上半天的测试,由于官方改变了公司设置里report_header和footer的字体,所以页眉页脚还是乱码。但估计是很容易调整的

    GoodERP -- Odoo China fork

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

      Jeff你好
      你的模块跟report_base_unicode差不多。用mrshelly的方法好像不够但是用report base的模块行。 我觉得report_header和footer的字体不重要因为每一个公司有自己的。
      其实我以为v6可以管理unicode但是好像还要加入特别的模块。真倒霉

      eric

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

        其实 最蛋疼的问题 是 中文字体名

        EP: 宋体 === SimSun

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

          理论上原来的base_report_cn还是能用的,只是执行效率不够高。
            V6去年引入了customfonts模块以方便rml-pdf报表的字体定义,当时我写了一个很简单的脚本测试了一下,现稍做修改附在附件中。稍后传到launchpad,大家共同维护
          另,表头,表尾的字体在系统管理->公司->公司中定义

          [EDIT] 字体文件太大,附件放不下, [检测到链接无效,已移除]

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

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

            OE 6.0 使用了以下自定义字体。

            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'),]

            系统需要在字体文件夹能搜索到上面列出的字体文件,最简单的方法是拷贝simsun.ttf 文件到字体文件夹,然后分别改名为“DejaVuSans.ttf”,
            “DejaVuSans-Bold.ttf”,“DejaVuSans-Oblique.ttf”,“DejaVuSans-BoldOblique.ttf”。这样,全部报表都可以正常使用中文了。

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

              搭车问一下,产品的stock level forest报表中,右侧的产品名称是什么字体?
              ls诸位的方法我都试了,其他位置全部没有问题了,就是这里还是乱码。。。

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

                Stock Level Forecast 报表 与一般的 rml pdf 报表不一样..

                它是 graph 的报表. 是由 pychart 直接演染的.  要支持中文, 可能要参阅 pychart 的相关文档(我记得我以前好象测试过, 没有把 pychart 的中文问题搞定)

                具体的 请查看 addons\stock\report\product_stock.py 以及  addons\stock\report\stock_graph.py 文件.

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

                  校长的文件下载后,直接放到ADDONS下,OPENERP好象不能直接检测到,是不是模块有点出错呀~不好意思!谁装成功了能否给点提示呀

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

                    导入ZIP文件安装也不行

                    ImportError: No module named openerp.report.render.rml2pdf.customfonts

                    GoodERP -- Odoo China fork

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

                      把import openerp.report.render.rml2pdf.customfons改成 import report.render.rml2pdf.customfonts
                      试试

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

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

                        按校长所说去掉openerp. 安装成功,打印出来的报表还是黑框
                        server log是:
                        File "/usr/lib/python2.6/dist-packages/reportlab/pdfbase/ttfonts.py", line 267 ,in readFile
                          self._ttf_data = file.read()

                        AttributeError: 'unicode' object has no attribute 'read'

                        环境:OpenERP6.0 源码运行在ubuntu server上,web端访问

                        GoodERP -- Odoo China fork

                        1 条回复 最后回复
                        0
                        • D 离线
                          D 离线
                          dquo
                          写于 最后由 编辑
                          #17

                          我的好象行了~但有个问题,我在UBUNTU引入zip时,他说我不法创建模块文件,但把他到SHARE文件夹下后可以更新安装,也显示中文字了~

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

                            中文pdf报表输出已经并入l10n_cn模块: http://code.google.com/p/openerp-china/source/checkout
                            为简化问题,该模块中自带了两个开源字体。欢迎大家测试汇报问题。

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

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

                              15M的fonts文件放在addons里可能官方很难接受吧。是必要的么?

                              GoodERP -- Odoo China fork

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

                                呵呵,有时间会加一些判断逻辑使用各个系统自带的中文字体,达人们有时间也可以共同改进呀。

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

                                1 条回复 最后回复
                                0
                                • K 离线
                                  K 离线
                                  kingcarrie
                                  写于 最后由 编辑
                                  #21

                                  有人能解决繁体的pdf report吗

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

                                    下载这里的模块: [检测到链接无效,已移除]
                                    这是一个很简单的模块,照葫芦画瓢,你就把繁体的pdf模块搞定了。

                                    如果实在搞不明白,只要将两个繁体字体改名为该模块中所带的字体文件的名字并将模块中的两个字体拷贝覆盖掉,就可以了。

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

                                    1 条回复 最后回复
                                    0
                                    • K 离线
                                      K 离线
                                      kingcarrie
                                      写于 最后由 编辑
                                      #23

                                      校长?

                                      那简体繁体的pdf模块能同时存在吗?
                                      比如,我现在customer里面又有简体 又有繁体,打印报表的时候它如何判定?

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

                                        http://shine-it.net/index.php/topic,2230.0.html

                                        手工在你的 rml 文件中, 添加字体注册,然后并使用这些字体就OK了.当然,服务器上, 你的简繁字体文件都要放到能检索到的位置...

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

                                          [quote author=kingcarrie link=topic=2314.msg8124#msg8124 date=1307821145]
                                          校长?

                                          那简体繁体的pdf模块能同时存在吗?
                                          比如,我现在customer里面又有简体 又有繁体,打印报表的时候它如何判定?
                                          [/quote]

                                          我介绍的模块的主要功能是让系统中默认的报表能以中文显示。如果你要在自定义的报表中显示不同的字体,楼下Shelly兄已经解释的很清楚了。
                                          除了Shelly同学介绍的在rml中注册字体的方法,还可以直接在中文pdf模块中注册字体,甚至创建一个view让用户自己选择需要注册的字体,这些就需要做一些代码开发了。

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

                                          1 条回复 最后回复
                                          0

                                          • 登录

                                          • 没有帐号? 注册

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