如何使用 Aspose.BarCode FOSS 渲染条形码
Problem
生成条形码后,您需要将其渲染为图像文件。Aspose.BarCode FOSS 用于 Python 可通过 Barcode 对象上的 to_svg() 和 to_png() 方法将条形码渲染为 SVG 和 PNG 格式。RenderOptions 类控制诸如比例、DPI、颜色、安静区和可读文本显示等视觉属性。
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.code128("RENDER-ME")
png = bc.to_png(options=RenderOptions(scale=2.0, dpi=300))先决条件
- Python 3.12 或更高版本
- pip 包管理器
aspose-barcode-foss从源码构建
SVG 输出
调用 to_svg() 以获取条形码的 SVG 字符串。SVG 输出基于矢量,可在不损失质量的情况下缩放。
import aspose_barcode_foss as barcode
bc = barcode.qr("https://example.com")
svg_string = bc.to_svg()
with open("barcode.svg", "w") as f:
f.write(svg_string)PNG 输出
调用 to_png() 以获取条形码的 PNG 字节。PNG 输出在指定的比例和 DPI 下进行光栅化。
import aspose_barcode_foss as barcode
bc = barcode.code128("PNG-OUTPUT")
png_bytes = bc.to_png()
with open("barcode.png", "wb") as f:
f.write(png_bytes)控制比例和 DPI
使用 RenderOptions 设置 scale(模块大小的浮点乘数)和 dpi(光栅输出的每英寸点数)。您也可以直接设置 module_width 和 module_height,以精确控制各个模块的尺寸。
from aspose_barcode_foss import RenderOptions
options = RenderOptions(
scale=3.0,
dpi=300,
module_width=1.5,
module_height=25.0,
)
png = bc.to_png(options=options)设置颜色
将 foreground_color 和 background_color 设置为 CSS 颜色字符串。对 PNG 输出使用 transparent_background=True,以实现无背景填充。
from aspose_barcode_foss import RenderOptions
options = RenderOptions(
foreground_color="#003366",
background_color="#FFFFFF",
)
svg = bc.to_svg(options=options)
# Transparent background for PNG
options_transparent = RenderOptions(
foreground_color="#000000",
transparent_background=True,
)
png = bc.to_png(options=options_transparent)静区
quiet_zone 属性控制以模块单位计的条码周围的空白边距。条码标准通常要求最小的静区以确保可靠扫描。
from aspose_barcode_foss import RenderOptions
options = RenderOptions(quiet_zone=10.0)
svg = bc.to_svg(options=options)可读文本
将 show_text=True 设置为在条码下方渲染可读文本。使用 font_family 和 font_size 来控制字体。
from aspose_barcode_foss import RenderOptions
options = RenderOptions(
show_text=True,
font_family="monospace",
font_size=12.0,
)
svg = bc.to_svg(options=options)RenderOptions 属性
| 属性 | 类型 | 描述 |
|---|---|---|
scale | float | 模块尺寸的倍数 |
dpi | int | 每英寸点数(光栅输出) |
module_width | float | 一个模块的宽度 |
module_height | float | 一个模块的高度 |
quiet_zone | float | 模块单位中的空白边距 |
foreground_color | str | CSS 用于栏/模块的颜色 |
background_color | str | CSS 用于背景的颜色 |
transparent_background | bool | 透明 PNG 背景 |
show_text | bool | 显示人类可读的文本 |
font_family | str | 人类可读文本的字体 |
font_size | float | 人类可读文本的字体大小 |
已知限制
在 API 中存在 to_pdf() 方法和 PdfRenderer 类,但会抛出 NotImplementedError。请改用 to_svg() 或 to_png()。SVG 输出可以通过外部工具嵌入 PDF 文档中。