我们可以在for循环中使用分页符吗?

时间:2015-01-05 08:02:49

标签: python html jinja2 erpnext

我想在python中使用for循环打印条形码。这是我的代码:

`{%- from "templates/print_formats/standard_macros.html" import add_header -%}

<hr>

{% set a = doc.end %}
{% set count = 0 %}
<div class="row">
{%- for i in range(doc.start,doc.end) -%}

<div class="col-md-4 text-center">
<p style="font-family: Code39AzaleaFont;font-weight: normal;font-style: normal;font-size:30px;">
00000000000000{{ i }}</p>
{% set count = count + 1 %}
{{count}}

<br/>
</div>

{%- endfor -%}
</div>
    <hr>
    <br>
    <p class="strong">

        <br>
        <br>
        <br>
        {{ _("Authorized Signatory") }}
    </p>
</div>`

问题是,我想将一张纸上打印的条形码数限制为24.有没有办法做到这一点?

2 个答案:

答案 0 :(得分:2)

您可以使用以下方法在每24个条形码后添加分页符:

{% if count % 24 %}<div style="page-break-before: always;"></div>{% endif %}

答案 1 :(得分:0)

HTML没有一个非常好的“纸张尺寸”概念。 HTML页面具有无限高度和browser's are notoriously bad a printing HTML in a readable way(除了Opera之外)。

With CSS 3, three page break properties were defined.

您的浏览器可能会支持它们。如果是,则在<div>中包装24个条形码,并为该<div>提供一个告诉浏览器在之后打破页面的类。

如果浏览器最后会发出一个空白页面,那么您需要两个类:一个用于第一个<div>没有分页符,一个用于每个连续<div>和一个page-break-before: always;

如果效果不好,你应该看一下PDF。 PDF允许您将元素精确放置在具有已知固定大小的页面上。