การแก้ปัญหา Aspose.Words FOSS สําหรับ Python

การแก้ปัญหา 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.

See Also

 ภาษาไทย