Odoo 报告 - 默认字体的 wkhtmltopdf 错误

问题描述 投票:0回答:1

经过大量搜索,我在报告中发现了 Odoo 中默认字体的问题。 错误是,如果我在报告中使用 设置文本,通常这两者之间的文本应该变强,但整个页面上的所有文本都会变强。

Image

    <t t-set="information_block" style="font-family:arial">

        <t t-if="doc.partner_shipping_id == doc.partner_invoice_id">
            Invoicing and Shipping Address:
        </t>
        <t t-else="">
           <strong>Invoicing Address:</strong>
        </t>

        <div t-field="doc.partner_invoice_id" t-options="{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;address&quot;, &quot;name&quot;, &quot;phone&quot;], &quot;no_marker&quot;: True, &quot;phone_icons&quot;: True}"/>
        <t t-if="doc.partner_shipping_id != doc.partner_invoice_id">
            Shipping Address:
            <div t-field="doc.partner_shipping_id" t-options="{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;address&quot;, &quot;name&quot;, &quot;phone&quot;], &quot;no_marker&quot;: True, &quot;phone_icons&quot;: True}"/>
        </t>
    </t>

Odoo 设置为默认字体 Lato。该代码来自我的自定义模块,但它是原始 report_saleorder_document 的副本。 如果我用 wkhtmltopdf 打印销售订单报告,也会出现该错误。

但是如果我在代码中将字体设置为 arial:

<div style="font-family:arial;">  <strong>Invoicing Address:</strong> </div>

pdf 正确:

Image

有谁知道故障出在哪里以及如何正确解决它? 谢谢。

odoo report pdf-generation wkhtmltopdf odoo-16
1个回答
0
投票

HTML 和 PDF 之间的字体转换存在很多问题。

在这种情况下,您似乎已经避免了由于权限有限或位置错误而丢失字体的常见故障,因此字体是正确的 Lato。但请注意,作为常规,它已经比许多其他功能强大得多,在这里我们看到“正常”和 HTML 之间的划分

<strong>
更改了左侧的功能,但没有将样式从常规更改为粗体,如右侧所示。

所以答案是需要从一种字体更改为另一种字体,即使它是同一个家族。

有多种方法可以尝试将线条划分为样式,但

strong
b
本身不会将字体从一种更改为另一种。这里我通过 style class="b" 添加了内联样式更改

b  { font-family: 'Lato-Bold'; font-style: bold; font-weight: 800;}

请注意,PDF 名称不是 Lato-Bold.TTF 名称,而是内部 LatoBold 名称,并且具有正确的效果。

@font-face { font-family: 'Lato-Bold'; font-style: bold; font-weight: bold; src: url("file:///C:/Users/lez/Downloads/Apps/Fonts/ttf/Lato-Bold.ttf") format("truetype"); }

© www.soinside.com 2019 - 2024. All rights reserved.