我只需要更改发票标题上的徽标大小。在第一次尝试中,我尝试这样选择布局:
<template id="external_layout_bold_ksp" inherit_id="web.external_layout_bold">
<xpath expr="//div[@t-attf-class='header o_company_#{company.id}_layout']/div/div/div/img"
position="replace">
<img t-if="company.logo" style="max-width: 350px;max-height: 190px;"
t-att-src="image_data_uri(company.logo)" alt="Logo"/><br/>
</xpath>
</template>
它工作,但它正在更改所有pdf报告的所有徽标为粗体布局,无法在报告模板report_invoice_document
中找到徽标路径。我只需要调整发票报告的标志
我已经在Odoo 11中应用了类似的东西,它将在其他版本中工作。
要仅在发票报告中调整徽标的大小,您需要通过发票报告中的上下文传递值,然后在外部布局粗体模板中检查它。
我已经从发票报告中添加了change_logo_size布尔上下文值,并将其设置为true,如下所示:
<template id="report_invoice_document_logo" inherit_id="account.report_invoice_document">
<xpath expr="//t[@t-call='web.external_layout']" position="before">
<t t-set="o" t-value="o.with_context(change_logo_size= True)"/>
</xpath>
</template>
然后在继承外部布局粗体,我已经检查了从上下文的值,如果它是真的,然后应用替换图像,否则把它作为它的:
<template id="external_layout_bold_ksp" inherit_id="web.external_layout_bold">
<xpath expr="//div[@t-attf-class='header o_company_#{company.id}_layout']/div/div/div/img" position="replace">
<t t-if=" o and o.env and 'change_logo_size' in o.env.context and o.env.context.get('change_logo_size',False)">
<img t-if="company.logo" style="max-width: 350px;max-height: 190px;"
t-att-src="image_data_uri(company.logo)" alt="Logo"/>
</t>
<t t-else="">
<img t-if="company.logo" t-att-src="image_data_uri(company.logo)" alt="Logo"/>
</t>
</xpath>
</template>