บทนำ
Aspose.BarCode FOSS สำหรับ Python มีคลาสตัวเลือกตามสัญลักษณ์ที่ควบคุมพฤติกรรมการเข้ารหัสในทั้งเจ็ดรูปแบบบาร์โค้ดที่สนับสนุนแต่ละคลาสตัวเลือกสืบทอดจาก EncodeOptions และเพิ่มคุณสมบัติที่เฉพาะเจาะจงต่อสัญลักษณ์ของมัน — โหมดการเข้ารหัส Code 128, การเลือก ASCII Code 39, ระดับการแก้ไขข้อผิดพลาด QR, และการจัดการตัวเลขตรวจสอบ EAN/UPC.
โพสต์นี้ครอบคลุมแต่ละคลาสตัวเลือก, คุณสมบัติของมัน, และตัวอย่างโค้ดที่ทำงานได้. คลาสเหล่านี้สามารถเข้าถึงได้จากแพ็กเกจระดับบนสุดของ aspose_barcode_foss.
คุณสมบัติหลัก
โหมดการเข้ารหัส Code 128
Code128Options ควบคุมชุดอักขระ Code 128 ที่ตัวเข้ารหัสใช้. คุณสมบัติ encode_mode รับค่า enum ของ Code128EncodeMode: 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()
Code 128 ยังรองรับคุณสมบัติ gs1_enabled และ eci_assignment_number ที่สืบทอดจาก EncodeOptions สำหรับ GS1 และเมทาดาต้า ECI.
Code 39 การเข้ารหัส
Code39Options ควบคุมว่าเครื่องเข้ารหัสจะใช้ชุดอักขระฐาน 43 ตัวหรือส่วนขยาย Full ASCII หรือไม่. ตั้งค่า full_ascii=True เพื่อเปิดใช้งาน Full ASCII mode, ซึ่งจะเข้ารหัสช่วงอักขระ ASCII ทั้งหมด 128 ตัวโดยใช้คู่เปลี่ยนตำแหน่ง. คุณสมบัติเสริม 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 เวอร์ชัน (1–40), ควบคุมขนาดสัญลักษณ์mask: mask pattern (0–7) สำหรับการเลือกด้วยตนเอง
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. โดยค่าเริ่มต้น ไลบรารีจะคำนวณตัวเลขตรวจสอบโดยอัตโนมัติจากข้อมูล. ตั้งค่า 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():
| คุณสมบัติ | ประเภท | คำอธิบาย |
|---|---|---|
scale | float | ตัวคูณสเกลแบบสม่ำเสมอ |
dpi | int | ความละเอียดสำหรับการส่งออก PNG |
module_width | float | ความกว้างของโมดูลบาร์โค้ดหนึ่งตัว |
module_height | float | ความสูงของโมดูลบาร์โค้ดหนึ่งตัว |
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.
เริ่มต้นอย่างรวดเร็ว
git clone https://github.com/aspose-barcode-foss/Aspose.BarCode-FOSS-for-Python.git
cd Aspose.BarCode-FOSS-for-Python
pip install -e .สร้างบาร์โค้ดด้วยตัวเลือกการเข้ารหัสที่แตกต่างและบันทึกไว้:
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 | ประเภท | คลาสตัวเลือก | คุณสมบัติสำคัญ |
|---|---|---|---|
| Code 128 | 1D | Code128Options | encode_mode |
| Code 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 Code | 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 |
รูปแบบผลลัพธ์:
| รูปแบบ | ส่วนขยาย | Export |
|---|---|---|
| SVG | .svg | ✓ |
| PNG | .png | ✓ |
โอเพนซอร์ส & การให้สิทธิ์
Aspose.BarCode FOSS สำหรับ Python มีสัญญาอนุญาต MIT. ซอร์สโค้ดพร้อมใช้งานบน GitHub; สร้างจากซอร์สโค้ด. ไม่มีการพึ่งพาเนทีฟ, ไม่มีการเก็บข้อมูลการใช้งาน, ไม่มีขีดจำกัดการใช้.