การแก้ปัญหา Aspose.Words FOSS สําหรับ Python
คู่มือนี้จะอธิบายความผิดพลาดและปัญหาที่พบกันทั่วไปที่สุดในการสร้างบาร์โค้ดด้วย Aspose.BarCode FOSS for Python (pip install aspose-barcode-foss) ทุก ส่วน อธิบาย ความ ผิดพลาด สาเหตุ และ วิธี แก้ไขมัน.
ความผิด ที่ ปกติ
InvalidInputError
InvalidInputError จะถูกยกขึ้นเมื่อข้อมูลที่ส่งเข้าสู่เครื่องโค้ดไม่ตรงกับความต้องการของชุดตัวอักษรหรือความยาวของสัญลักษณ์.
สาเหตุทั่วไป:
- การส่งตัวอักษรหลักกุลเป็นสัญลักษณ์ที่มีจํานวนเพียง (EAN-13, EAN-8, UPC-A, U PC-E)
- การให้รุ่นที่ความยาวไม่ตรงกับความต้องการของสัญลักษณ์ (เช่น EAN-13 จํานวนเลข 12 หรือ 13 ตัว)
- รวมตัวอักษรนอกจากเซตที่รองรับของสัญลักษณ์ (เช่น โค้ด 39 เบสต์โหมดเพียงแค่รอง รับตัวเลขใหญ่, เลข และตัวละครพิเศษบาง)
แก้ไข: ยืนยันข้อมูลการเข้าของคุณก่อนโทร BarcodeService.generate().ตรวจสอบสัญลักษณ์ของโปรไฟล์ capabilities และ known_limitations คุณสมบัติสําหรับการจํากัดชุดตัวอักษรและความยาว.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
# EAN-13 requires exactly 12 or 13 digits
data = "590123412345" # 12 digits — valid
barcode = service.generate("ean13", data)EncodingError
EncodingError จะถูกกระตุ้นเมื่อ encoder พบกับความผิดพลาดภายในหลังจากการตรวจสอบการเข้าผ่าน. นี้ไม่ค่อยเป็นธรรมดากว่า InvalidInputError.
สาเหตุทั่วไป:
- ข้อมูลที่ผ่านการตรวจสอบความถูกต้องครั้งแรก แต่ล้มเหลวในระหว่างการรหัสเซ็กเมนต์ (เช่น ข่าว QR Code ที่เกินความจุของระดับแก้ไขข้อผิดพลาดที่ถูกเลือก)
- ตัวเลือกการรหัสที่ขัดแย้งกัน (เช่น การขอ
Code128EncodeMode.CODE_Aโดยมีข้อมูลที่มีตัวอักษรเล็ก)
แก้ไข: กลับมาดูตัวเลือกการรหัสที่ผ่านไปยัง generate().สําหรับรหัส 128 ใช้ Code128EncodeMode.AUTO เพื่อให้ตัวโค้ดเลือกย่อยที่เหมาะสม สําหรับ QR Code ลองใช้รหัสต่ํากว่า QrErrorCorrectionLevel หรือลดความยาวของข้อมูล.
from aspose_barcode_foss import BarcodeService, Code128Options, Code128EncodeMode
service = BarcodeService()
options = Code128Options(encode_mode=Code128EncodeMode.AUTO)
barcode = service.generate("code128", "Hello123", encode=options)SymbologyNotFoundError
SymbologyNotFoundError จะเพิ่มขึ้นเมื่อชื่อสัญลักษณ์ผ่านไปยัง BarcodeService.generate() ไม่ถูกจดทะเบียนในสหกรณ์การจัดหาของประเทศ SymbologyRegistry.
สาเหตุทั่วไป:
- ชื่อสัญลักษณ์ที่เขียนผิด (เช่น.
"code_128"แทนของ"code128") - การใช้สัญลักษณ์ที่ไม่สนับสนุนโดยห้องสมุด (ห้องประมวลผลรองรับ Code 128 , Code 39 , EAN-13 ,EAN-8 , QR Code, UPC-A และ U PC-E เท่านั้น)
แก้ไข: ใช้ตัวจําแนกสัญลักษณ์ที่สนับสนุน 7 ตัว: "code128", "code39", "ean13", "ean8", "qrcode", "upca", "upce".ชื่อไม่ใช้ตัวเลขหลัก แต่ต้องตรงกับตัวจําแนกที่ลงทะเบียนไว้.
from aspose_barcode_foss import BarcodeService
service = BarcodeService()
# Correct symbology names
barcode = service.generate("code128", "ABC-123")
barcode = service.generate("qrcode", "https://example.com")RenderingError
RenderingError จะถูกกระตุ้นเมื่อเครื่องแสดงผลิตไม่ออกจากสัญลักษณ์ที่โค้ด.
สาเหตุทั่วไป:
- Invalid
RenderOptionsค่า (เช่นลบ)scaleหรือmodule_width) - การพยายามใช้
PdfRenderer(PDF rendering ยกขึ้น)NotImplementedErrorในรุ่นที่ใช้อยู่ตอนนี้)
แก้ไข: การใช้งาน SvgRenderer หรือ PngRenderer แทนของ PdfRenderer.ยืนยันว่า RenderOptions คุณสมบัติมีค่าบวกที่ถูกต้อง.
from aspose_barcode_foss import BarcodeService, RenderOptions
from aspose_barcode_foss.rendering import SvgRenderer
service = BarcodeService()
barcode = service.generate("ean13", "590123412345")
options = RenderOptions(scale=2.0, dpi=300)
result = barcode.render(SvgRenderer(), options)ไม่สนับสนุนCapabilityError และไม่สนองFeatureError
UnsupportedCapabilityError จะถูกยกขึ้นเมื่อสัญลักษณ์ไม่สนับสนุนความสามารถที่เรียกร้อง (เช่น รูปแบบ GS1 สําหรับสัญญาณที่ขาดการรองรับของ GS1). UnsupportedFeatureError จะถูกยกขึ้นสําหรับลักษณะที่ไม่ได้นําไปใช้ในห้องสมุด.
แก้ไข: ตรวจสอบโปรไฟล์สัญลักษณ์ capabilities การระวังการขอแบบ GS1 สําหรับสัญลักษณ์ที่ไม่สนับสนุนมัน.
ปัญหาสิ่งแวดล้อม
Python Version รุ่นที่ใช้ในไพธอน
Aspose.BarCode FOSS requires Python 3.12 or later. If you see SyntaxError หรือการนําเข้าความล้มเหลว ตรวจสอบเวอร์ชั่น Python ของคุณ:
python --versionปัญหาการติดตั้ง
ถ้าหาก pip install aspose-barcode-foss ไม่สําเร็จ การตรวจสอบ pip ให้ทันสมัย:
pip install --upgrade pip
pip install aspose-barcode-fossห้องสมุดเป็น Python สะอาด โดยไม่มีการพึ่งพาพื้นบ้าน หากการติดตั้งประสบความสําเร็จ แต่การนําเข้าล้มเหลว ตรวจสอบว่าคุณไม่ได้ใช้ไฟล์ท้องถิ่นที่ชื่อ Shadow Package ในโครงการ aspose_barcode_foss.py.
ความผิดพลาดในการนําเข้า
การนําเข้าที่ถูกต้องคือ:
import aspose_barcode_fossหรือนําเข้าชั้นเฉพาะ:
from aspose_barcode_foss import BarcodeService, RenderOptionsคําถามที่พบบ่อย
ทําไมบาร์โค้ด EAN-13 ของผมจะแสดงเลขที่แตกต่างจากที่ผมใส่ไว้?
EAN-13 ทําการคํานวณตัวเลขเช็คโดยอัตโนมัติ หากคุณผ่าน 12 ตัวเลข หมายเลขที่ 13 จะถูกเพิ่มขึ้น ถ้าคุณข้าม 13 ตัวหลัก เลขสุดท้ายจะได้รับความรับรองเป็นตัวເລກเช็ก ใช้ Ean13Options หนองแว่นallow_check_digit_input คุณสมบัติในการควบคุมพฤติกรรมนี้.
ทําไมการออก PDF จะแสดง NotImplementedError?
PdfRenderer.render() และ Barcode.to_pdf() ยังไม่ได้นําไปใช้งาน Barcode.to_svg() หรือ Barcode.to_png() แทนหรือทํากับ SvgRenderer หรือ PngRenderer โดยตรง.
วิธีการ debug ชื่อสัญลักษณ์ที่มีอยู่?
การใช้งาน SymbologyRegistry.get_definition() เพื่อตรวจสอบว่า symbology ถูกจดทะเบียนหรือไม่ ถ้ามันยกขึ้น SymbologyNotFoundError, สัญลักษณ์ไม่พร้อม. พันสัญญากับรองคือ: รหัส 128, รถหมาย 39, EAN-13, EAn-8, QR Code, UPC-A และ U PC-E.