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: SvgRenderer và PngRenderer.
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,
))| Property | Type | Description |
|---|---|---|
scale | float | Tỷ lệ đa số đơn lẻ cho toàn bộ mã thanh |
dpi | int | Giải pháp cho sản lượng PNG (không ảnh hưởng đến SVG) |
module_width | float | Chiều rộng của một module mã thanh trong các đơn vị người dùng |
module_height | float | Kích thước của một module mã thanh trong các đơn vị người dùng |
quiet_zone | float | Whitespace padding xung quanh barcode |
foreground_color | str | Màu sắc Hex cho thanh và mô-đun (ví dụ:., "#000000") |
background_color | str | Màu sắc Hex cho nền |
transparent_background | bool | Hình nền minh bạch cho sản xuất PNG |
show_text | bool | Hiển thị văn bản đọc bằng con người dưới mã thanh |
font_family | str | Tác giả: Man-readable text |
font_size | float | Kí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: ...SvgRenderer và PngRenderer 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 :
| Property | Type | Description |
|---|---|---|
data | `str | bytes` |
media_type | str | MIMM loại ("image/svg+xml" hoặc "image/png") |
backend | str | Renderer 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
scalecho 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=300cho 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=Truecho mã thanh PNG sẽ được chuyển trên nền màu sắc. foreground_colorvàbackground_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
| Issue | Cause | Fix Đặt |
|---|---|---|
| PNG trông quá nhỏ | Mức độ mặc định là 1.0 | Increase scale hoặc Set dpi |
| Text không thể nhìn thấy | show_text Lỗ hổng cho False | Set Đặt show_text=True |
| QR code không có văn bản | QR Symbolology không hỗ trợ văn bản đọc được cho con người | Chức năng tương ứng: QR sử dụng không-op text layout |
| Màu sắc không áp dụng | Tên tài sản bị mất tích | Sử dụng tên tài sản chính xác: foreground_color, background_color |