如何在Odoo中仅打印产品条形码标签?如何更改纸张的默认尺寸?

时间:2017-12-07 13:36:05

标签: xml report odoo qweb

我创建了一个打印条形码标签的报告。

我的模板尝试打印整个页面,但我需要一个特殊页面:width = 35mmheight = 11mm

那么我如何以及在何处更改默认产品标签报告模板并进行更改?我只需要打印标签为pdf。

1 个答案:

答案 0 :(得分:0)

带有条形码的报告模板,此示例使用qrcode,但您可以更改它以使其适应您的需要。您也可以添加一些样式:

<template id="report_label_style" inherit_id="website_report.layout">
    <xpath expr="//style" position="after">
        <style type="text/css">
            .example_class {
                display: block;
                width: 228px;
                height: 103px;
            }
        </style>
    </xpath>
</template>

<template id="report_label">
    <t t-call="report.html_container">
        <t t-foreach="docs" t-as="o">
            <div class="page">
                <div class="row">
                    <div class="example_class">
                        <t t-set="qr_src">/report/barcode/?type=QR&amp;value=<t t-esc="o.qr_string" />&amp;width=600&amp;height=600</t>
                        <img t-att-src="'%s' % qr_src"/>
                    </div>
                </div>
            </div>
        </t>
    </t>
</template>

纸质格式定义。如果你去,你会看到纸质格式:设置&gt;报告&gt;纸张形式

<record id="paperformat_label_example" model="report.paperformat">
    <field name="name">Paperformat Example</field>
    <field name="default" eval="True"/>
    <field name="format">custom</field>
    <field name="page_height">23</field>
    <field name="page_width">50</field>
    <field name="orientation">Portrait</field>
    <field name="margin_top">0</field>
    <field name="margin_bottom">0</field>
    <field name="margin_left">0</field>
    <field name="margin_right">0</field>
    <field name="header_line" eval="False"/>
    <field name="header_spacing">0</field>
    <field name="dpi">80</field>
</record>

报告操作,这会在模型ir_act_report_xml中创建所需的记录:

<report id="action_report_label"
        model="model.name"
        report_type="qweb-pdf"
        name="module_name.report_label"
        file="module_name.report_label"
        string="Label" />

在这里,我将纸质格式与报告相关联:

<record id="module_name.action_report_label" model="ir.actions.report.xml">
    <field name="paperformat_id" ref="module_name.paperformat_label_example"/>
</record>