Introduction
Aspose.BarCode FOSS for Python provides per-symbology option classes that control encoding behavior across all seven supported barcode formats. Each option class inherits from EncodeOptions และเพิ่มคุณสมบัติเฉพาะตัวอักษร รูปแบบโค้ด Code 128 การเลือก ASCII Code 39 ระดับการแก้ไขความผิดพลาด QR และการจัดการเลขเช็ค EAN / UPC.
บทความนี้ครอบคลุมทุกคลาสตัวเลือก, คุณสมบัติของมันและตัวอย่างโค้ดการทํางาน. ทุกชั้นเรียนมีจากระดับบน aspose_barcode_foss แพ็คเกจ.
คุณสมบัติหลัก
โค้ด 128 รูปแบบการรหัส
Code128Options การควบคุมที่รหัส 128 ตัวอักษรตั้งตัว Encoder ใช้. encode_mode อสังหาริมทรัพย์ยอมรับการ Code128EncodeMode enum value: ค่าที่ใช้ในการทําการ: AUTO, CODE_A, CODE_B, CODE_C, CODE_AB, CODE_AC,หรือ CODE_BC. AUTO เลือกการโค๊ดที่สับสนที่สุดโดยอัตโนมัติ. CODE_C ถูกปรับปรุงสําหรับข้อมูลที่มีเพียงตัวเลข (คู่ตัวหลักถูกโค้ดเป็นจุดรหัสเดียว).
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code128Options, Code128EncodeMode
bc = barcode.code128(
"1234567890",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
svg = bc.to_svg()
รหัส 128 ยังรองรับการใช้งานของ gs1_enabled และ eci_assignment_number อสังหาริมทรัพย์ที่ได้รับมรดกจาก EncodeOptions สําหรับเมตาข้อมูล GS1 และ ECI.
รหัส 39 การรหัวกระบุ
Code39Options การควบคุมว่าตัวโค้ดจะใช้เซตหลัก 43 ตัวอักษรหรือการขยาย Full ASCII Set full_ascii=True เพื่อเปิดแบบ ASCII ครบ, ที่รหัสระดับ AS CII 128 ตัวเต็มโดยใช้คู่ shift. ทางเลือก add_check_digit อสังหาริมทรัพย์ที่ติดต่อกับตัวเลขตรวจสอบ Modulo-43.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Code39Options
bc = barcode.code39(
"Hello",
encode=Code39Options(full_ascii=True, add_check_digit=True),
)
svg = bc.to_svg()
การตั้งค่า QR Code
QrOptions มีการตั้งค่ามากที่สุดในหมู่ทั้งหมดของสัญลักษณ์:
error_correction_level:QrErrorCorrectionLevel.L(7%),.M(15%),.Q(25%),.H(30%)encoding_mode:QrEncodeMode.AUTO,.NUMERIC,.ALPHANUMERIC,.BYTE,.KANJIversion: รุ่น QR (140) การควบคุมขนาดสัญลักษณ์mask: รูปแบบหน้ากาก (07) สําหรับการเลือกมือ
import aspose_barcode_foss as barcode
from aspose_barcode_foss import QrOptions, QrErrorCorrectionLevel, QrEncodeMode
bc = barcode.qr(
"https://example.com/product/12345",
encode=QrOptions(
error_correction_level=QrErrorCorrectionLevel.Q,
encoding_mode=QrEncodeMode.BYTE,
),
)
png_bytes = bc.to_png()
EAN และ UPC เลขตรวจสอบ
Ean13Options, Ean8Options, UpcaOptions,และ UpceOptions แต่ละคนมีตัวเลข allow_check_digit_input property โดยตั้งค่าล่วงหน้า ห้องสมุดคํานวณตัวเลขเช็คโดยอัตโนมัติจากข้อมูล Set allow_check_digit_input=True ถ้าข้อมูลของคุณมีตัวเลขเช็คอยู่อยู่แล้ว.
import aspose_barcode_foss as barcode
from aspose_barcode_foss import Ean13Options
# Automatic check digit (12 digits in, library appends the 13th)
bc = barcode.ean13("590123412345")
svg = bc.to_svg()
# Pre-computed check digit (13 digits, library validates)
bc2 = barcode.ean13(
"5901234123457",
encode=Ean13Options(allow_check_digit_input=True),
)
ตัวเลือกการทําภาพ
RenderOptions ใช้กับสัญลักษณ์ทั้งหมด และควบคุมผลิตทางสายตา to_svg() หรือ to_png():
| Property | Type | Description |
|---|---|---|
scale | float | เครื่องคูณขนาดแบบเดียวกัน |
dpi | int | ความละเอียดสําหรับการออก PNG |
module_width | float | ความกว้างของโมดูล barcode หนึ่ง |
module_height | float | ความสูงของโมดูล barcode หนึ่ง |
quiet_zone | float | การปรับพื้นที่ขาวรอบบาร์โค้ด |
foreground_color | str | สี Hex สําหรับบาร์ (เช่น., "#000000") |
background_color | str | สี Hex สําหรับพื้นหลัง |
transparent_background | bool | แฟนที่โปร่งใสสําหรับ PNG |
show_text | bool | แสดงข้อความที่อ่านได้ภายใต้บาร์โค้ด |
font_family | str | แฟนต์สําหรับข้อความที่สามารถอ่านได้โดยมนุษย์ |
font_size | float | ขนาดตัวอักษรสําหรับข้อความที่สามารถอ่านได้โดยมนุษย์ |
import aspose_barcode_foss as barcode
from aspose_barcode_foss import RenderOptions
bc = barcode.upca("01234567890")
png = bc.to_png(options=RenderOptions(
scale=3.0,
dpi=300,
foreground_color="#1a1a1a",
background_color="#ffffff",
show_text=True,
font_family="Courier New",
))
การจัดการข้อผิดพลาด
การตรวจสอบการใช้งานของตัวเลือกโค้ดทั้งหมดจะเกิดขึ้นในเวลาพาร์ส หากข้อมูลที่ไม่ถูกต้องหรือตัวເລືອກที่ไม่สามารถเข้ากันได้ ถูกให้บริการแล้ว ห้องสมุดจะยกเว้นแบบก่อนที่จะเริ่มต้นการรหัส:
InvalidInputErrorข้อมูลมีตัวอักษรที่ไม่รองรับจากสัญลักษณ์EncodingErrorการรหัสล้มเหลว (เช่น ข้อมูลเกินความจุ)SymbologyNotFoundErrorชื่อสัญลักษณ์ที่ไม่รับรู้เปลี่ยนไปเป็นgenerate()UnsupportedCapabilityErrorคุณสมบัติที่ต้องการไม่พร้อมสําหรับสัญลักษณ์นี้
ทุกคลาสความพิเศษได้รับมรดกจาก BarcodeError.
เริ่มต้นอย่างรวดเร็ว
pip install aspose-barcode-foss
สร้างบาร์โค้ดที่มีตัวเลือกการเข้ารหัสที่แตกต่างกันและบันทึกมัน:
import aspose_barcode_foss as barcode
from aspose_barcode_foss import (
Code128Options, Code128EncodeMode,
QrOptions, QrErrorCorrectionLevel,
RenderOptions,
)
# Code 128 in CODE_C mode (compact digit encoding)
c128 = barcode.code128(
"9876543210",
encode=Code128Options(encode_mode=Code128EncodeMode.CODE_C),
)
with open("code128.svg", "w") as f:
f.write(c128.to_svg())
# QR with high error correction
qr = barcode.qr(
"https://example.com",
encode=QrOptions(error_correction_level=QrErrorCorrectionLevel.H),
)
with open("qr.png", "wb") as f:
f.write(qr.to_png(options=RenderOptions(scale=4.0)))
# EAN-13 with custom colors
ean = barcode.ean13("590123412345")
with open("ean13.svg", "w") as f:
f.write(ean.to_svg(options=RenderOptions(
foreground_color="#003366",
show_text=True,
)))
รูปแบบที่สนับสนุน
| Symbology | Type | ประเภทของตัวเลือก | คุณสมบัติสําคัญ |
|---|---|---|---|
| รหัส 128 | 1D | Code128Options | encode_mode |
| รหัส 39 | 1D | Code39Options | full_ascii, add_check_digit |
| EAN-13 | 1D | Ean13Options | allow_check_digit_input |
| EAN-8 | 1D | Ean8Options | allow_check_digit_input |
| รหัส QR | 2D | QrOptions | error_correction_level, encoding_mode, version, mask |
| UPC-A | 1D | UpcaOptions | allow_check_digit_input |
| UPC-E | 1D | UpceOptions | allow_check_digit_input |
รูปแบบการออก:
| Format | Extension | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
หลักสูตรและใบอนุญาต
Aspose.BarCode FOSS for Python is MIT licensed. The source is available on GitHub และแพ็คเกจติดตั้งจาก PyPI มี pip install aspose-barcode-foss.ไม่มีการพึ่งพาพื้นฐาน,ไม่มีเทเลเมทรี, ไม่จํากัดการใช้งาน.