如何在Odoo POS及Odoo 11厨房订单收据中修改字体大小
Odoo POS及厨房订单收据字体大小调整方案
嘿,我来帮你搞定这两个收据字体调整的问题!
问题1:如何在Odoo POS中修改订单收据的字体大小?
调整POS订单收据的字体大小,核心是找到对应的模板文件并修改格式属性,具体步骤如下:
- 定位模板文件:默认的POS收据模板在
point_of_sale/static/src/xml/pos_receipt.xml,如果你用的是自定义模块,记得通过继承方式修改,不要直接改动核心文件(避免升级丢失)。 - 利用Odoo打印格式属性:Odoo的热敏打印支持
size属性,可选值有normal(默认)、double-height(双倍高度)、double-width(双倍宽度)、double(同时双倍高宽)。比如要增大收据标题的字体,找到对应的标签添加属性:<h1 size="double-height"><t t-esc="receipt.name"/></h1> - 网页预览的CSS调整:如果是网页端预览的收据,还可以通过CSS样式直接调整,比如:
<div style="font-size: 1.3em;"><t t-esc="line.product_name"/></div> - 生效方式:修改后重启Odoo服务,刷新POS页面(记得清除浏览器缓存),测试打印效果。
问题2:Odoo 11厨房订单收据商品名称字体增大方案
你尝试给NameWrapped模板传递size参数但没生效,问题出在NameWrapped默认没有接收并应用这个参数。下面给你两种可行的解决方案:
方案1:修改NameWrapped模板,支持传递size参数
- 首先找到
NameWrapped模板的定义(通常在restaurant/static/src/xml/restaurant_receipt.xml文件中),原模板大概是这样:<t t-name="NameWrapped"> <t t-foreach="change.name_wrapped[1:]" t-as="line"> <line line-ratio='0.6'> <left><t t-esc="line"/></left> <right></right> </line> </t> </t> - 修改模板,让它接收
size参数并应用到<line>标签上:<t t-name="NameWrapped"> <t t-foreach="change.name_wrapped[1:]" t-as="line"> <line line-ratio='0.6' t-att-size="size"> <left><t t-esc="line"/></left> <right></right> </line> </t> </t> - 之后你原来的调用代码
<t t-call="NameWrapped" size='double-height'/>就能生效了。
方案2:直接展开NameWrapped内容,跳过模板调用
如果不想修改NameWrapped模板,直接把它的内容替换到你的代码里,然后直接设置size属性:
<t t-foreach="changes.new" t-as="change"> <div size="double-height" t-if="!change.order"> <line line-ratio='0.6'> <left><t t-esc="change.name_wrapped[0]" /></left> <right><t t-esc="change.qty" /> <t t-esc="change.unit" /></right> </line> <!-- 替换NameWrapped调用为直接展开的代码 --> <t t-foreach="change.name_wrapped[1:]" t-as="line"> <line line-ratio='0.6' size="double-height"> <left><t t-esc="line"/></left> <right></right> </line> </t> </div> </t>
额外提示
- 如果是热敏打印机,优先用
size属性,这是打印机原生支持的指令,效果更稳定;如果是普通打印/网页预览,也可以用style="font-size: 1.2em;"这类CSS样式调整。 - 修改后记得重启Odoo,清空POS的缓存(在POS界面按
F5刷新,或者在Odoo后台的POS会话中同步数据)。
内容的提问来源于stack exchange,提问作者user2379186
相关产品推荐
相关产品推荐

