Oecn_base_fonts 使用说明(解决v.7.0,v6.1,V6.0.x的PDF中文字体方框问题,支持CJK语言)
- 
[quote author=Joshua link=topic=2791.msg17643#msg17643 date=1374112404] 
 模块完全免费。错误详情需要你提供server-log才能知道
 [/quote]
 经过几日的倒腾,发现Win7 64位版本无法安装, Win7 32位和Win2003 32位都没问题。 错误日志非常蛋疼,没有发现有价值的信息。
 2013-07-25 10:31:56,966 948 [1;32m[1;49mINFO[0m test openerp.modules.module: module oec
 n_base_fonts: creating or updating database tables
 2013-07-25 10:31:57,385 948 [1;32m[1;49mINFO[0m test openerp.modules.loading: module oe
 cn_base_fonts: loading oecn_font_installer.xml
 2013-07-25 10:32:16,944 948 [1;31m[1;49mERROR[0m test openerp.addons.base.ir.ir_ui_view
 : Can't render view for model: oecn.font.installer
 Traceback (most recent call last):
 File "c:\temp\OpenERP\OpenERP\openerp\addons\base\ir\ir_ui_view.py", line 126, in _check
 _render_view
 fvg = self.pool.get(view.model).fields_view_get(cr, uid, view_id=view.id, view_type=vi
 ew.type, context=context)
 File "c:\temp\OpenERP\OpenERP\openerp\osv\orm.py", line 2260, in fields_view_get
 xarch, xfields = self.__view_look_dom_arch(cr, user, result['arch'], view_id, context=
 ctx)
 File "c:\temp\OpenERP\OpenERP\openerp\osv\orm.py", line 1913, in __view_look_dom_arch
 fields_def = self.__view_look_dom(cr, user, node, view_id, False, fields, context=cont
 ext)
 File "c:\temp\OpenERP\OpenERP\openerp\osv\orm.py", line 1859, in __view_look_dom
 fields.update(self.__view_look_dom(cr, user, f, view_id, in_tree_view, model_fields, c
 ontext))
 File "c:\temp\OpenERP\OpenERP\openerp\osv\orm.py", line 1859, in __view_look_dom
 fields.update(self.__view_look_dom(cr, user, f, view_id, in_tree_view, model_fields, c
 ontext))
 File "c:\temp\OpenERP\OpenERP\openerp\osv\orm.py", line 1776, in __view_look_dom
 xarch, xfields = relation.__view_look_dom_arch(cr, user, f, view_id, ctx)
 File "c:\temp\OpenERP\OpenERP\openerp\osv\orm.py", line 1912, in __view_look_dom_arch
 fields = self.fields_get(cr, user, None, context)
 File "c:\temp\OpenERP\OpenERP\openerp\osv\orm.py", line 3514, in fields_get
 res[f] = fields.field_to_dict(self, cr, user, field, context=context)
 File "c:\temp\OpenERP\OpenERP\openerp\osv\fields.py", line 1525, in field_to_dict
 res['selection'] = field.selection(model, cr, user, context)
 File "c:\temp\OpenERP\OpenERP\openerp\addons\oecn_base_fonts\oecn_font_installer.py", li
 ne 54, in get_system_fonts
 return self._system_fonts_get(cr, uid)
 File "c:\temp\OpenERP\OpenERP\openerp\addons\oecn_base_fonts\oecn_font_installer.py", li
 ne 69, in _system_fonts_get
 ff.search()
 File "c:\temp\OpenERP\OpenERP\python\lib\site-packages\reportlab\lib\fontfinder.py", lin
 e 259, in search
 font = TTFontFile(fileName,validate=self.validate)
 File "c:\temp\OpenERP\OpenERP\python\lib\site-packages\reportlab\pdfbase\ttfonts.py", li
 ne 413, in init
 self.extractInfo(charInfo)
 File "c:\temp\OpenERP\OpenERP\python\lib\site-packages\reportlab\pdfbase\ttfonts.py", li
 ne 473, in extractInfo
 A(chr(char))
 ValueError: chr() arg not in range(256)
 2013-07-25 10:32:17,247 948 [1;31m[1;49mERROR[0m test openerp.tools.convert: Parse erro
 r in file:///c:/temp/OpenERP/OpenERP/openerp/addons/oecn_base_fonts/oecn_font_installer.xm
 l:5:
 <record id="view_font_configuration_installer" model="ir.ui.view">
 <field name="name">oecn.font.installer.form</field>
 <field name="model">oecn.font.installer</field>
 <field name="inherit_id" ref="base.res_config_installer"/>
 <field name="arch" type="xml">
 <data><form position="attributes" version="7.0">
 <attribute name="string">Customer Font Mapping Configuration</attribut
 e>
 </form>
 <footer position="replace">
 <footer>
 <button name="action_next" type="object" string="Continue" class="oe
 _highlight"/>
 </footer>
 </footer>
 <separator string="title" position="replace">
 <p class="oe_grey">
 Fonts used in the default report may not support the characters in
 your lanuage. Use the setting here to replace the Original font with the font you choose.
 </p>
 <group>
 <field name="wrap" class="oe_inline"/>
 <field name="map_ids" nolabel="1" colspan="4">
 <tree string="Font replace" editable="top">
 <field name="pdf_font"/>
 <field name="new_font" on_change="onchange_new_font(new_font)"
 />
 <field name="name"/>
 </tree>
 </field>
 </group>
 </separator>
 </data></field>
 </record>
 Traceback (most recent call last):
 File "c:\temp\OpenERP\OpenERP\openerp\tools\convert.py", line 847, in parse
 self._tags[rec.tag](self.cr, rec, n)
 File "c:\temp\OpenERP\OpenERP\openerp\tools\convert.py", line 814, in _tag_record
 id = self.pool.get('ir.model.data')._update(cr, self.uid, rec_model, self.module, res,
 rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mod
 e=self.mode, context=rec_context )
 File "c:\temp\OpenERP\OpenERP\openerp\addons\base\ir\ir_model.py", line 963, in _update
 res_id = model_obj.create(cr, uid, values, context=context)
 File "c:\temp\OpenERP\OpenERP\openerp\addons\base\ir\ir_ui_view.py", line 103, in create
 return super(view, self).create(cr, uid, values, context)
 File "c:\temp\OpenERP\OpenERP\openerp\osv\orm.py", line 4470, in create
 self._validate(cr, user, [id_new], context)
 File "c:\temp\OpenERP\OpenERP\openerp\osv\orm.py", line 1544, in _validate
 raise except_orm('ValidateError', '\n'.join(error_msgs))
 except_orm: ('ValidateError', u'Error occurred while validating the field(s) arch: Invalid
 XML for View Architecture!')
 2013-07-25 10:32:17,558 948 [1;31m[1;49mERROR[0m test openerp.netsvc: ValidateError
 Error occurred while validating the field(s) arch: Invalid XML for View Architecture!
 Traceback (most recent call last):
 File "c:\temp\OpenERP\OpenERP\openerp\netsvc.py", line 292, in dispatch_rpc
 result = ExportService.getService(service_name).dispatch(method, params)
 File "c:\temp\OpenERP\OpenERP\openerp\service\web_services.py", line 626, in dispatch
 res = fn(db, uid, *params)
 File "c:\temp\OpenERP\OpenERP\openerp\osv\osv.py", line 188, in execute_kw
 return self.execute(db, uid, obj, method, *args, **kw or {})
 File "c:\temp\OpenERP\OpenERP\openerp\osv\osv.py", line 144, in wrapper
 raise except_osv(inst.name, inst.value)
 except_osv: ('ValidateError', u'Error occurred while validating the field(s) arch: Invalid
 XML for View Architecture!')
 2013-07-25 10:32:17,647 948 [1;32m[1;49mINFO[0m test werkzeug: 127.0.0.1 - - [25/Jul/20
 13 10:32:17] "POST /web/dataset/call_button HTTP/1.1" 200 -
 2013-07-25 10:32:18,003 948 [1;32m[1;49mINFO[0m ? werkzeug: 127.0.0.1 - - [25/Jul/2013
 10:32:18] "GET /web/static/src/img/warning.png HTTP/1.1" 200 -
- 
[quote author=wangbuke link=topic=2791.msg14384#msg14384 date=1362545060] 
 oecn_base_fonts 无法找到字体的一种解决方案
 环境:
 Aliyun CentOS 6.3
 Python 2.7.3 (源码编译安装)
 reportlab 2.6 (源码默认编译安装)
 查看reportlab模块路径
 # python -c "import reportlab; print reportlab.file"
 /opt/python2.7/lib/python2.7/site-packages/reportlab/init.pyc
 # cd /opt/python2.7/lib/python2.7/site-packages/reportlab
 创建目录,如有fonts目录则跳过
 # mkdir fonts
 复制字体文件
 # cp wqy-zenhei.ttc ./fonts
 重启 OE , done!
 [/quote]
 这个文泉倚字体免费,不错。
- 
OE8无法用吗,如何搞?GreenOpenERP绿色包。 
 oecn_base_fonts-trunk.2.1.1
 Traceback (most recent call last):
 File "/opt/OpenERP-wms/openerp/http.py", line 470, in dispatch
 result = self._call_function(**self.params)
 File "/opt/OpenERP-wms/openerp/http.py", line 294, in _call_function
 return checked_call(self.db, *args, **kwargs)
 File "/opt/OpenERP-wms/openerp/service/model.py", line 113, in wrapper
 return f(dbname, *args, **kwargs)
 File "/opt/OpenERP-wms/openerp/http.py", line 291, in checked_call
 return self.endpoint(*a, **kw)
 File "/opt/OpenERP-wms/openerp/http.py", line 638, in call
 return self.method(*args, **kw)
 File "/opt/OpenERP-wms/openerp/http.py", line 337, in response_wrap
 response = f(*args, **kw)
 File "/opt/OpenERP-wms/openerp/addons/web/controllers/main.py", line 1246, in call_button
 action = self._call_kw(model, method, args, {})
 File "/opt/OpenERP-wms/openerp/addons/web/controllers/main.py", line 1234, in _call_kw
 return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
 File "/opt/OpenERP-wms/openerp/addons/base/module/module.py", line 428, in button_immediate_install
 return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
 File "/opt/OpenERP-wms/openerp/addons/base/module/module.py", line 479, in _button_immediate_function
 registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
 File "/opt/OpenERP-wms/openerp/modules/registry.py", line 298, in new
 openerp.modules.load_modules(registry._db, force_demo, status, update_module)
 File "/opt/OpenERP-wms/openerp/modules/loading.py", line 339, in load_modules
 loaded_modules, update_module)
 File "/opt/OpenERP-wms/openerp/modules/loading.py", line 243, in load_marked_modules
 loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
 File "/opt/OpenERP-wms/openerp/modules/loading.py", line 155, in load_module_graph
 init_module_models(cr, package.name, models)
 File "/opt/OpenERP-wms/openerp/modules/module.py", line 237, in init_module_models
 result = obj._auto_init(cr, {'module': module_name})
 File "/opt/OpenERP-wms/openerp/osv/orm.py", line 2899, in _auto_init
 cr.execute('ALTER TABLE "%s" ADD COLUMN "%s" %s' % (self._table, k, get_pg_type(f)[1]))
 TypeError: 'NoneType' object has no attribute 'getitem'
- 
OE8已经内置了一个类似的字体替换方法,不需要安装这个模块了。等V8发布,全部是Qweb报表就更用不着替换字体了。 
- 
odoo8.0 已经不用此模块 见: http://shine-it.net/index.php/topic,16538.0.html 


