Barcode Rendering

Barcode Rendering

Aspose.BarCode FOSS for Python separates encoding from rendering. After a barcode is encoded into an EncodedSymbol,A, a Renderer triển khai chuyển đổi mô-đun matrix thành xuất thị giác. thư viện bao gồm: SvgRendererPngRenderer.


RenderOptions

RenderOptions kiểm soát kết quả thị giác của tất cả các renderers. to_svg() hoặc to_png() trên bất kỳ Barcode đối tượng :

import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions

bc = barcode.code128("Hello World")
svg = bc.to_svg(options=RenderOptions(
    scale=2.0,
    foreground_color="#003366",
    quiet_zone=10.0,
    show_text=True,
))
PropertyTypeDescription
scalefloatTỷ lệ đa số đơn lẻ cho toàn bộ mã thanh
dpiintGiải pháp cho sản lượng PNG (không ảnh hưởng đến SVG)
module_widthfloatChiều rộng của một module mã thanh trong các đơn vị người dùng
module_heightfloatKích thước của một module mã thanh trong các đơn vị người dùng
quiet_zonefloatWhitespace padding xung quanh barcode
foreground_colorstrMàu sắc Hex cho thanh và mô-đun (ví dụ:., "#000000")
background_colorstrMàu sắc Hex cho nền
transparent_backgroundboolHình nền minh bạch cho sản xuất PNG
show_textboolHiển thị văn bản đọc bằng con người dưới mã thanh
font_familystrTác giả: Man-readable text
font_sizefloatKích thước phông chữ cho văn bản dễ đọc của con người

ResolvedRenderOptions

ResolvedRenderOptions là cấu hình hoàn toàn kết hợp được sản xuất bởi OptionsResolver.resolve().Nó kết hợp người dùng-đưa cung cấp RenderOptions Với The SymbologyProfile tất cả các tài sản có giá trị cụ thể (không None).

Các Barcode.default_render_options Tài sản giữ RenderOptions Thời gian phát triển (hoặc thời gian None Nếu không được cung cấp).


SVG xuất khẩu

SvgRenderer sản xuất SVG phát hành. gọi to_svg() trên a Barcode đối tượng :

bc = barcode.ean13("590123412345")
svg_string = bc.to_svg()

# With custom options
svg_custom = bc.to_svg(options=RenderOptions(
    scale=3.0,
    foreground_color="#1a1a1a",
    show_text=True,
    font_family="Helvetica",
    font_size=12.0,
))

with open("ean13.svg", "w") as f:
    f.write(svg_custom)

to_svg() Trở lại a str - Có tài liệu SVG đầy đủ.


PNG xuất khẩu

PngRenderer sản xuất PNG phát hành. gọi to_png() trên a Barcode đối tượng :

bc = barcode.qr("https://example.com")
png_bytes = bc.to_png()

# With custom options
png_custom = bc.to_png(options=RenderOptions(
    scale=4.0,
    dpi=300,
    transparent_background=True,
))

with open("qr.png", "wb") as f:
    f.write(png_custom)

to_png() trở lại bytes Dữ liệu hình ảnh PNG.


Render Abstraction Đánh giá

Các Renderer lớp cơ bản trừu tượng xác định giao diện cho tất cả các renderers:

class Renderer(ABC):
    def render(self, symbol, layout, options) -> RenderedArtifact: ...

SvgRendererPngRenderer Cả hai đều thực hiện giao diện này. bạn có thể gọi Barcode.render(renderer, options) để sử dụng một render cụ thể trực tiếp:

from aspose_barcode_foss import SvgRenderer, RenderOptions

bc = barcode.code128("DATA")
artifact = bc.render(SvgRenderer(), RenderOptions(scale=2.0))
print(artifact.media_type)  # "image/svg+xml"
print(type(artifact.data))  # <class 'str'>

RenderedArtifact

Các RenderedArtifact Trở lại bởi Renderer.render() chứa :

PropertyTypeDescription
data`strbytes`
media_typestrMIMM loại ("image/svg+xml" hoặc "image/png")
backendstrRenderer nhận dạng

Text Layout Đề xuất

Mỗi biểu tượng có một TextLayoutPolicy Điều này xác định cách văn bản đọc được người đặt dưới mã thanh. create_layout(symbol, options) Phương pháp trả về a TextLayout chứa TextSegment Các đối tượng với vị trí và dữ liệu văn bản.

QR Code sử dụng QrTextLayoutPolicy, cung cấp một bố trí no-op (mã QR không hiển thị văn bản có thể đọc bởi con người).


Mẹo và Thực hành Tốt nhất

  • Sử dụng scale cho một kích thước đồng nhất và module_width/module_height để kiểm soát chiều cao chính xác - không kết hợp cả hai.
  • Set Đặt dpi=300 cho chất lượng in PNG xuất phát; mặc định là độ phân giải màn hình.
  • Sử dụng transparent_background=True cho mã thanh PNG sẽ được chuyển trên nền màu sắc.
  • foreground_colorbackground_color - Chọn màu xám ("#RRGGBB").
  • SVG output là giải pháp độc lập — thích SV G cho web và PDF tích hợp.

Các vấn đề thường gặp

IssueCauseFix Đặt
PNG trông quá nhỏMức độ mặc định là 1.0Increase scale hoặc Set dpi
Text không thể nhìn thấyshow_text Lỗ hổng cho FalseSet Đặt show_text=True
QR code không có văn bảnQR Symbolology không hỗ trợ văn bản đọc được cho con ngườiChức năng tương ứng: QR sử dụng không-op text layout
Màu sắc không áp dụngTên tài sản bị mất tíchSử dụng tên tài sản chính xác: foreground_color, background_color

See Also

 Tiếng Việt