如何使用 Aspose.BarCode FOSS 渲染条形码

如何使用 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 属性

属性类型描述
scalefloat模块尺寸的倍数
dpiint每英寸点数(光栅输出)
module_widthfloat一个模块的宽度
module_heightfloat一个模块的高度
quiet_zonefloat模块单位中的空白边距
foreground_colorstrCSS 用于栏/模块的颜色
background_colorstrCSS 用于背景的颜色
transparent_backgroundbool透明 PNG 背景
show_textbool显示人类可读的文本
font_familystr人类可读文本的字体
font_sizefloat人类可读文本的字体大小

已知限制

在 API 中存在 to_pdf() 方法和 PdfRenderer 类,但会抛出 NotImplementedError。请改用 to_svg() 或 to_png()。SVG 输出可以通过外部工具嵌入 PDF 文档中。

另请参阅

 中文