跳转到主要内容

支持Python的条码渲染,包括QRcode、Aztec、PDF417、I25、Code128、Code39等多种类型。

项目描述

https://img.shields.io/github/actions/workflow/status/adamchainz/treepoem/main.yml?branch=main&style=for-the-badge https://img.shields.io/pypi/v/treepoem.svg?style=for-the-badge https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge pre-commit

一个巧妙命名的、但非常简单的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 是要嵌入到条形码中的 strbytes 数据 - 可以嵌入的数据量因类型而异。

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 发布时

  1. 运行 ./download_bwipp.py 下载指定的 BWIPP 版本。

  2. 运行 ./make_data.py 更新 treepoem 知道的条形码类型。

  3. CHANGELOG.rst 中添加关于升级的注释,并从上一个版本中调整。

  4. 提交并创建拉取请求,参考先前的示例

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码发行版

treepoem-3.24.0.tar.gz (362.4 kB 查看哈希值)

上传时间 源代码

构建发行版

treepoem-3.24.0-py3-none-any.whl (359.4 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面