Sign应用程序字体问题 - xiaohao0576/odoo-doc GitHub Wiki

Odoo的Sign应用,默认中文字体乱码。需要在系统参数里面添加一对键值

进入 Settings -> Technical -> System Parameters,点击New,添加以下键值

key: sign.use_custom_font
value: Sun-ExtA
Sun-ExtA字体包含了简体中文、繁体中文、日文、韩文,虽然也有柬埔寨语,但是打印出来组合方式不对。
字符数:50139
阿拉伯文, 亚美尼亚文, 孟加拉文, 注音符号, 盲文, 布希德文, 加拿大土著统一音节文字, 切罗基文, 西里尔文, 天城体梵文, 埃塞俄比亚文, 格鲁吉亚文, 希腊文, 古吉拉特文, 古木基文, 中文, 哈努诺文, 希伯来文, 日文, 高棉文, 卡纳达文, 韩文, 老挝文, 拉丁文, 林布文, 马拉雅拉姆文, 蒙古文, 缅甸文, 欧甘文, 奥里亚文, 如尼文, 叙利亚文, 泰米尔文, 泰卢固文, 它拿文, 泰文, 藏文, 彝文, 符号

如果文档需要添加柬埔寨语,可以使用以下值

key: sign.use_custom_font
value: KhmerOS

https://github.com/GravityPDF/mpdf-core-fonts/blob/master/Sun-ExtA.ttf

https://github.com/GravityPDF/mpdf-core-fonts/blob/master/KhmerOS.ttf

相关代码

    def _get_font(self):
        custom_font = self.env["ir.config_parameter"].sudo().get_param("sign.use_custom_font")
        # The font must be a TTF font. The tool 'otf2ttf' may be useful for conversion.
        if custom_font:
            pdfmetrics.registerFont(TTFont(custom_font, custom_font + ".ttf"))
            return custom_font
        return "Helvetica"