支持Python的条码渲染,包括QRcode、Aztec、PDF417、I25、Code128、Code39等多种类型。
项目描述
一个巧妙命名的、但非常简单的Python条码渲染器,封装了BWIPP库和ghostscript
命令行工具。
通过我的书提高您的Django和Git技能 之一.
安装
使用 pip 安装
python -m pip install treepoem
支持 Python 3.8 到 3.12。
您还需要安装 Ghostscript。在 Ubuntu/Debian 上,可以使用以下命令安装:
apt-get install ghostscript
在 Mac OS X 上使用
brew install ghostscript
否则请参考您发行版的软件包管理器,尽管它很可能也被称为 ghostscript。
在 Ghostscript 9.22+ 中存在一个已知的问题,图像渲染时会出现模糊。请参阅 GitHub Issue #124 及其相关链接以获取更多详情。Ghostscript 在版本 9.26 中合并了一个修复,从那时起,常见的条形码似乎可以正常工作,尽管仍然存在一些模糊。
您可以使用以下命令检查您的 Ghostscript 版本:
gs --version
API
generate_barcode(barcode_type: str, data: str | bytes, options: dict[str, str | bool] | None=None, *, scale: int = 2) -> Image
生成一个条形码并将其作为 PIL Image 对象 返回
barcode_type 是要生成的条形码类型的名称(见下文)。
data 是要嵌入到条形码中的 str 或 bytes 数据 - 可以嵌入的数据量因类型而异。
options 是一个字符串到字符串的字典,包含传递给 BWIPP 的额外选项,如其文档所述。
scale 控制输出图像的大小。使用 1 生成最小的图像,使用更大的值生成更大的图像。
例如,这会生成一个 QR 码图像,并使用 Image.save() 将其保存到文件中
import treepoem
image = treepoem.generate_barcode(
barcode_type="qrcode", # One of the BWIPP supported codes.
data="barcode payload",
)
image.convert("1").save("barcode.png")
如果您的条形码图像是单色的,没有附加文本或着色,将 Image 对象转换为单色(image.convert("1"))可能会减小其文件大小。
barcode_types: dict[str, BarcodeType]
这是一个 ~100 个条形码类型名称的字典,这些类型由 BWIPP 的捆绑版本支持:其键是条形码类型编码器的 str 名称,其值是 BarcodeType 的实例。
BarcodeType
一个表示类型元信息的类。它有两个属性
type_code - 使用 generate_barcode() 的 barcode_type 参数使用此类型所需的价值。
description - 类型的人类级描述,有两个 str。
仅使用这些常见的类型进行测试套件
命令行界面
Treepoem 还提供了一个简单的命令行界面来访问 generate_barcode 功能。例如,以下命令将生成两个内容相同但纠错级别不同的 QR 码(见 QR 码选项)。
$ treepoem -o barcode1.png -t qrcode "This is a test" eclevel=H
$ treepoem -o barcode2.png -t qrcode "^084his is a test" eclevel=L parse
完整的用法说明可以通过 treepoem --help 查看。
这个名字有什么特别之处?
条形码。
树颂。
树诗。
更新 BWIPP
当 treepoem 开发中有新的 BWIPP 发布时
运行 ./download_bwipp.py 下载指定的 BWIPP 版本。
运行 ./make_data.py 更新 treepoem 知道的条形码类型。
在 CHANGELOG.rst 中添加关于升级的注释,并从上一个版本中调整。
提交并创建拉取请求,参考先前的示例。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。