การทํา Barcode

การทํา Barcode

Aspose.BarCode FOSS for Python separates encoding from rendering. After a barcode is encoded into an EncodedSymbol, a Renderer การดําเนินการแปลงเมทริกซ์โมดูลเป็นผลิตทางวิจารณ์. ห้องสมุดรวม SvgRenderer และ PngRenderer.


RenderOptions

RenderOptions ควบคุมผลิตภาพของเครื่อง render ทุกตัว. ส่งมันไปยัง to_svg() หรือ to_png() ในทุก ๆ ครั้ง Barcode วัตถุประกอบ:

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
scalefloatเครื่องคูณขนาดแบบเดียวกันสําหรับบาร์โค้ดทั้งหมด
dpiintความละเอียดสําหรับการออก PNG (ไม่มีผลต่อ SVG)
module_widthfloatความกว้างของโมดูลบาร์โค้ดหนึ่งในหน่วยผู้ใช้
module_heightfloatความสูงของโมดูล barcode หนึ่งในหน่วยผู้ใช้
quiet_zonefloatการปรับพื้นที่ขาวรอบบาร์โค้ด
foreground_colorstrสี Hex สําหรับบาร์และโมดูล (เช่น., "#000000")
background_colorstrสี Hex สําหรับพื้นหลัง
transparent_backgroundboolแผนหลังโปร่งใสสําหรับการออก PNG
show_textboolแสดงข้อความที่อ่านได้ภายใต้บาร์โค้ด
font_familystrแฟนต์สําหรับข้อความที่สามารถอ่านได้โดยมนุษย์
font_sizefloatขนาดตัวอักษรสําหรับข้อความที่สามารถอ่านได้โดยมนุษย์

ResolvedRenderOptions

ResolvedRenderOptions คือการประกอบแบบรวมอย่างเต็มที่ ที่ผลิตโดย OptionsResolver.resolve().มันรวมข้อมูลจากผู้ใช้งาน RenderOptions กับการ SymbologyProfile คุณสมบัติทั้งหมดมีค่าตัวจริง (ไม่มี) None).

การ Barcode.default_render_options อสังหาริมทรัพย์ถือของ RenderOptions ผ่านไปในช่วงรุ่น (หรือ None ถ้าไม่ได้จัดส่ง).


การออก SVG

SvgRenderer สร้างการออก SVG. เรียก to_svg() ใน a Barcode วัตถุประกอบ:

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() กลับ a str ซึ่งมีเอกสาร SVG ทั้งหมด.


การออก PNG

PngRenderer ส่งผลการออก PNG. โทรหา to_png() ใน a Barcode วัตถุประกอบ:

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() การคืนสินค้า bytes ซึ่งมีข้อมูลภาพ PNG.


การแสดงแบบขัดแย้ง

การ Renderer abstract base class กําหนดอัตราสัมผัสสําหรับการแสดงผลทั้งหมด:

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

SvgRenderer และ PngRenderer ทั้งสองนําเข้าใช้งานอินเตอร์เฟสนี้ คุณสามารถโทรหา Barcode.render(renderer, options) ใช้ตัวทําการแสดงผลเฉพาะอย่างต่อตรง:

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

การ RenderedArtifact กลับโดย Renderer.render() มี:

PropertyTypeDescription
data`strbytes`
media_typestrประเภท MIME ("image/svg+xml" หรือ "image/png")
backendstrตัวรับประจําตัวของผู้ให้การแสดงภาพ

การจัดทําข้อความ

ทุกปัญลักษณ์มี TextLayoutPolicy ซึ่งกําหนดการที่ข้อความสามารถอ่านได้ถูกวางอยู่ใต้บาร์โค้ด create_layout(symbol, options) วิธีการคืน a TextLayout มีสารประกอบด้วย TextSegment อัตถุที่มีตําแหน่งและข้อมูลข้อความ.

การใช้ QR Code QrTextLayoutPolicy, ซึ่งให้การวางแผนที่ไม่มี (รหัส QR ไม่แสดงข้อความอ่านได้ของมนุษย์).


เคล็ดลับและปฏิบัติที่ดีที่สุด

  • การใช้งาน scale สําหรับการจัดขนาดแบบเดียวกัน และ module_width/module_height สําหรับการควบคุมขนาดอย่างแม่นยํา ไม่รวมทั้งคู่.
  • เซ็ต dpi=300 สําหรับการออก PNG ที่มีคุณภาพพิมพ์ โดยตั้งค่าเป็นความละเอียดของจอ.
  • การใช้งาน transparent_background=True สําหรับบาร์โค้ด PNG ที่จะติดบนพื้นหลังสีสัน.
  • foreground_color และ background_color รับรองรหัสสี hex มาตรฐาน ("#RRGGBB").
  • การออก SVG ไม่ต้องใช้ความละเอียด ชอบการใส่ SVg สําหรับเว็บและ PDF.

ปัญหาทั่วไป

IssueCauseแก้ไข
PNG ดูเล็กเกินไประดับที่กําหนดเป็น 1.0Increase scale หรือชุด dpi
ข้อความไม่เห็นshow_text การผิดพลาดในการ Falseเซ็ต show_text=True
รหัส QR ไม่มีข้อความสัญลักษณ์ QR ไม่รองรับข้อความที่อ่านได้โดยมนุษย์พฤติกรรมที่คาดหวัง QR ใช้การวางแผนข้อความไม่มี op
สีไม่ใช้ชื่อที่ดินถูกเขียนผิดคําใช้ชื่อของสมบัติที่ถูกต้อง: foreground_color, background_color

See Also

 ภาษาไทย