【问题标题】:Can We use page breaks in for loops?我们可以在 for 循环中使用分页符吗?
【发布时间】:2015-01-05 08:02:49
【问题描述】:

我想在 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 个。有什么办法吗?

【问题讨论】:

  • 使用嵌套循环,父循环代表页面,子循环代表您要打印的条码数量。

标签: python html jinja2 erpnext


【解决方案1】:

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

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

【讨论】:

  • @LaksHmiSekhar 可以在合并答案后分享您更新的代码。我正在尝试做类似的事情,但我不确定上面的代码应该去哪里。
【解决方案2】:

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

With CSS 3, three page break properties were defined.

您的浏览器可能支持它们。如果是,则将 24 个条形码包装在 &lt;div&gt; 中,并为 &lt;div&gt; 提供一个类,该类告诉浏览器之后中断页面。

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

如果效果不佳,您应该查看 PDF。 PDF 允许您将元素准确地放置在具有已知固定大小的页面上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 2021-05-15
    • 2020-09-09
    • 1970-01-01
    • 2020-03-26
    • 1970-01-01
    相关资源
    最近更新 更多