You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pylatex生成条形码并插入到自动生成的PDF文档中

解决pylatex插入条形码的实现步骤

步骤1:导入依赖的LaTeX包

你需要先给文档对象添加条形码生成必需的两个LaTeX包,代码如下:

from pylatex import Package
# 以下两行添加在doc对象初始化完成后、生成PDF之前的位置
doc.packages.append(Package('pstricks'))
doc.packages.append(Package('pst-barcode'))

步骤2:在指定位置插入条形码

pylatex支持直接插入原始LaTeX代码,你可以把条形码代码放在任意需要的位置,既可以追加到现有内容块中,也可以放在独立的TextBlock里实现精确定位。修改后的完整示例代码如下:

from pylatex import Package, MiniPage, TextBlock, MediumText, HorizontalSpace, VerticalSpace, RawLatex
from pylatex.utils import bold

# 先添加依赖包
doc.packages.append(Package('pstricks'))
doc.packages.append(Package('pst-barcode'))

with doc.create(MiniPage(width=r"\textwidth")) as page:
   with page.create(TextBlock(100, 0, 0)):
      page.append("**** Ten Thousand Dollars")

   with page.create(TextBlock(100, 0, 30)):
      page.append("COMPANY NAME")
      page.append("\nSTREET, ADDRESS")
      page.append("\nCITY, POSTAL CODE")
      # 示例:在地址下方插入条形码
      page.append(RawLatex(r"""
      \begin{pspicture}(1.5,3)
      \psbarcode{00700}{}{ean5}
      \end{pspicture}
      """))

   with page.create(TextBlock(100, 150, 40)):
      page.append("")

   with page.create(TextBlock(80, 150, 0)):
      page.append("DATE")
      page.append(MediumText(bold("test")))
      page.append(HorizontalSpace("10mm"))

   with page.create(TextBlock(70, 150, 30)):
      page.append(MediumText(bold("$***** 10,000.00")))

   page.append(VerticalSpace("100mm"))

# 编译时建议指定xelatex编译器,避免pstricks相关编译错误
doc.generate_pdf(doc_location, clean_tex=False, compiler='xelatex')

补充说明

  • 如果需要动态生成条形码内容,只需要通过Python字符串格式化,把\psbarcode后第一个参数的固定值00700替换为数据库中读取的对应值即可
  • 如果需要调整条形码的位置、大小,可以修改pspicture的尺寸参数,或者把条形码代码放在独立的TextBlock中,通过调整TextBlock的坐标实现精确定位

内容的提问来源于stack exchange,提问作者NicLovin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 13:48:04