Pro รุ่น
Barcode — การอ้างอิงเชิงลึก
ภาพรวมโดยสังเขป
หัวข้อที่มีชื่อว่า “ภาพรวมโดยสังเขป”พื้นผิวบาร์โค้ดของ NextPDF Pro เพิ่มระบบสัญลักษณ์ 2D เฉพาะทางและ supply-chain ทับบนโมดูลบาร์โค้ดของ Core โดยมาพร้อมตัวเข้ารหัส 2D ที่ resolve ผ่านรีจิสทรีหกตัว (Micro QR, DotCode, Han Xin Code, JabCode, rMQR, GS1 DataBar) ตัวเข้ารหัสส่วนประกอบ 2D ของ GS1 Composite หนึ่งตัว (CC-C) ตัวเข้ารหัส 1D ของ USPS Intelligent Mail และตัวแจง GS1 Application Identifier พร้อมตัวตรวจสอบ supply-chain การเข้ารหัสเป็นแบบกำหนดผลแน่นอน คือเพย์โหลดและอ็อพชันเดียวกันให้เมทริกซ์ module ที่เหมือนกันเสมอ หน้านี้ระบุ public API สัญญาพฤติกรรม โหมดความล้มเหลว และหลักฐานความสอดคล้องต่อระบบสัญลักษณ์
ความพร้อมใช้งานและการอนุญาต
หัวข้อที่มีชื่อว่า “ความพร้อมใช้งานและการอนุญาต”ความสามารถนี้มาพร้อมใน NextPDF Pro (nextpdf/pro) และเปิดใช้งานด้วย license envelope ระดับ Pro การติดตั้งที่ไม่มีสิทธิ์นั้นจะไม่โหลดคลาสของความสามารถนี้ เปรียบเทียบรุ่นและขอรับสิทธิ์ใช้งาน
composer require nextpdf/pro:^3ระบบสัญลักษณ์แต่ละชนิดผูกชื่อความสามารถของตนเองใน license envelope: barcode.microqr, barcode.dotcode, barcode.hanxin, barcode.jabcode, barcode.rmqr, barcode.gs1databar และ barcode.gs1-composite-cc-c เมื่อความสามารถหนึ่งไม่มีสิทธิ์ใช้งาน รีจิสทรีจะไม่ resolve ตัวเข้ารหัสนั้น การเข้ารหัสสัญลักษณ์เต็มของ GS1 Composite CC-A และ CC-B ไม่รองรับ (ดูตารางสถานะการรองรับ) จึงไม่มีการลงทะเบียนคีย์ barcode.gs1-composite-cc-a หรือ barcode.gs1-composite-cc-b
พื้นผิว public API
หัวข้อที่มีชื่อว่า “พื้นผิว public API”คีย์รีจิสทรีมาจากค่า case ของ Core NextPDF\Barcode\Barcode2DType บวกกับคีย์ตามตัวอักษร gs1-composite-cc-c สำหรับตัวเข้ารหัสที่ resolve ผ่านรีจิสทรี คีย์รีจิสทรีคือสัญญาที่เสถียร ไม่ใช่ FQCN ของตัวเข้ารหัส
| สัญลักษณ์ | พารามิเตอร์ | พฤติกรรมเริ่มต้น | คืนค่า | โยนหรือล้มเหลวด้วย | หมายเหตุ |
|---|---|---|---|---|---|
BarcodeProServiceProvider::register() | BarcodeEncoderRegistry $registry | ผูกคีย์รีจิสทรีของ Pro ทั้งเจ็ด | void | — | static idempotent — การเรียกครั้งที่สองแทนที่การผูกครั้งแรก |
MicroQrEncoder::encode() | $data; อ็อพชัน ecLevel ('L', 'M', 'Q'; ค่าเริ่มต้น 'L'), version (1–4 หรือ null), mask (0–3 หรือ null) | เลือกเวอร์ชันที่พอดีที่เล็กที่สุดโดยอัตโนมัติ M1–M4 | Barcode2DData | InvalidArgumentException | 'H' ที่ไม่รองรับถูกบังคับเป็น 'L' แบบเงียบ (ผู้เรียกที่ต้องการการเลือก EC แบบ fail-closed ต้องตรวจสอบล่วงหน้า) M1 เพิกเฉยต่อ ecLevel |
DotCodeEncoder::encode() | $data; อ็อพชัน gs1 (bool, ค่าเริ่มต้น false), columns (int), rows (int), ratio (float, ค่าเริ่มต้น 1.5) | จัดขนาดกริดอัตโนมัติที่อัตราส่วนกว้าง:สูง 1.5 | Barcode2DData | InvalidArgumentException | อาจบังคับมิติกริดต่อแกน |
HanXinEncoder::encode() | $data; อ็อพชัน ecLevel (0–3, ค่าเริ่มต้น 1), version (1–84, ค่าเริ่มต้น auto) | เวอร์ชันที่พอดีที่เล็กที่สุด | Barcode2DData | InvalidArgumentException | โหมดข้อความ GB 2312 Region 1/2 ตาม ISO/IEC 20830 |
JabCodeEncoder::encode() | $data; อ็อพชัน colors (4, 8, 16, 32, 64, 128, 256; ค่าเริ่มต้น 8), eccLevel (0–10, ค่าเริ่มต้น 3), symbolNumber (1–61, ค่าเริ่มต้น 1), symbolVersions, symbolPositions, symbolEccLevels | สัญลักษณ์ 8 สีเดี่ยว | BarcodeColorData | InvalidArgumentException, JabCodeEncodingException | เมทริกซ์ module หลายสีพร้อมพาเลต |
RmqrEncoder::encode() | $data; อ็อพชัน ecLevel (RmqrConstants::EC_M ค่าเริ่มต้น, หรือ EC_H), version (เช่น 'R7x43', ค่าเริ่มต้น auto) | เวอร์ชันที่พอดีที่เล็กที่สุดใน 32 เวอร์ชันของ ISO/IEC 23941 | Barcode2DData | InvalidArgumentException | ปฏิเสธเพย์โหลดที่เกินความจุ ไม่ตัดทอนเลย |
Gs1DataBarEncoder::encode() | $data; อ็อพชัน variant (Gs1DataBarVariant, ค่าเริ่มต้น OMNIDIRECTIONAL), linkage (bool, ค่าเริ่มต้น false), height (int, ค่าเริ่มต้นคือค่าต่ำสุดของตัวแปร; ต่อแถวสำหรับ Expanded Stacked), segmentsPerRow (int, ค่าเริ่มต้น 4; เฉพาะ Expanded Stacked) | เข้ารหัสอินพุต GTIN (ตระกูล §5/§6) หรือสตริงองค์ประกอบ GS1 AI (ตระกูล §7) | Barcode2DData | InvalidArgumentException; InvalidSymbolStructureException | ตัวแปร Annex J ของ ISO/IEC 24724 ทั้งเจ็ดเข้ารหัสได้ |
Gs1DataBarVariant | — | isImplemented() คืนค่า true สำหรับทั้งเจ็ด case | enum (7 กรณี) | — | minimumHeightX() และ defaultHeightX() ตาม Annex J |
ImbEncoder::encode() | string $code (20, 25, 29 หรือ 31 หลัก) | แท่งสี่สถานะ 65 แท่ง | BarcodeData | InvalidArgumentException | อินเทอร์เฟซตัวเข้ารหัส 1D ไม่ใช่คีย์รีจิสทรี 2D |
ImbEncoder::encodeToString() | string $code | สถานะแท่งเป็นสตริง T/A/D/F | string | InvalidArgumentException | สำหรับตรวจกับเวกเตอร์อ้างอิงของ USPS |
Gs1DataParser::parse() | string $data | ตรวจจับ Digital Link URI อัตโนมัติ มิฉะนั้นเป็นรูปแบบ (AI)value | Gs1ParsedData | InvalidArgumentException | นำสัญญา Core Gs1DataParserInterface ไปใช้ |
Gs1DataParser::parseDigitalLink() | string $uri | แจง GS1 Digital Link URI | Gs1ParsedData | InvalidArgumentException | — |
Gs1DataParser::encodeForCode128() / ::encodeForQrCode() / ::encodeForDataMatrix() | object $parsed | ลำดับไบต์ของตัวพาพร้อมแบบแผน FNC1 ของตัวพานั้น | string | — | คาดหวังอินสแตนซ์ Gs1ParsedData |
Gs1DataParser::validateAI() | string $ai, string $value | ตรวจโครงสร้างของค่า AI หนึ่งค่า | bool | — | — |
Gs1Validator::validate() | string $barcodeData, Gs1SupplyChainProfile $profile (ค่าเริ่มต้น NONE) | เส้นทางลัดแบบ static เหนือ run() | Gs1ValidationResult | — | ความล้มเหลวในการแจงกลายเป็นผลการตรวจพบ ไม่ใช่ข้อยกเว้น |
Gs1Validator::run() | เหมือน validate() | แจง check digit วันที่ กฎ cross-AI และโปรไฟล์ | Gs1ValidationResult | — | เส้นทางแบบอินสแตนซ์ constructor รับตัวแจงที่ฉีดเข้ามา |
Gs1SupplyChainProfile | — | NONE ข้ามกฎโปรไฟล์ | enum (5 กรณี) | — | RETAIL, FOOD, PHARMA, LOGISTICS, NONE; requiredAIs(), recommendedAIs(), primaryIdentifiers() |
Gs1ValidationResult | — | ผลการตรวจพบถูกแบ่งตามความรุนแรงเมื่อสร้าง | readonly class | — | isValid, findings, errors, warnings, infos, parsedData; passes(), fails(), totalFindings() |
Gs1ValidationFinding / Gs1FindingSeverity | — | severity, ruleId, message พร้อม ai และ suggestion ที่เป็นทางเลือก | readonly class / enum | — | ระดับความรุนแรง: Error, Warning, Info |
CompositeComponentA::codewordsFor() | string $data | การเข้ารหัส binary-string อเนกประสงค์ §5 การแปลง base-928 การตรวจตนเองแบบ round-trip | list<int> (แต่ละค่า 0–927) | InvalidArgumentException | ป้อนให้ linkFor() หรือตัวเรนเดอร์ตัวพา CC-A ภายนอก |
CompositeComponentA::encode() | ถูกเพิกเฉย | ปฏิเสธการเรนเดอร์สัญลักษณ์เต็มของ CC-A | — | UnsupportedBarcodeFeature (เสมอ) | fail-closed ดูกรณีขอบ |
CompositeComponentB::encode() | ถูกเพิกเฉย | ปฏิเสธการเข้ารหัส 2D ของ CC-B | — | UnsupportedBarcodeFeature (เสมอ) | linkFor() ยังคงพร้อมใช้ (CCSI 901) |
CompositeComponentC::encode() | $data; อ็อพชันถูกส่งต่อไปยังตัวพา PDF417; carrierType (ค่าเริ่มต้น GS1_128) | ตัวพา PDF417 เต็มโดยมี CCSI codeword 920 นำหน้า | Barcode2DData | BarcodeException; CompositeLinkageException | รับเฉพาะตัวพา GS1_128 เท่านั้น |
CompositeComponent{A,B,C}::linkFor() | string $carrierId, array $codewords, CompositeCarrierType $carrierType | จับคู่ codeword ของส่วนประกอบกับตัวพา 1D | CompositeLinkage | CompositeLinkageException | บังคับความยอมรับได้และความจุของตัวพา |
CompositeVariant / CompositeCarrierType | — | CC_A, CC_B, CC_C; GS1_DATABAR, GS1_128 | enums | — | maxCodewords(), ccsi(), allowedCarriers(), usesFullPdf417() |
ลายเซ็นจุดเริ่มต้น
หัวข้อที่มีชื่อว่า “ลายเซ็นจุดเริ่มต้น”public static function register(BarcodeEncoderRegistry $registry): voidpublic function encode(string $data, array $options = []): Barcode2DDatapublic static function validate( string $barcodeData, Gs1SupplyChainProfile $profile = Gs1SupplyChainProfile::NONE,): Gs1ValidationResult
public function run( string $barcodeData, Gs1SupplyChainProfile $profile = Gs1SupplyChainProfile::NONE,): Gs1ValidationResultpublic function parse(string $data): Gs1ParsedDatapublic function parseDigitalLink(string $uri): Gs1ParsedDatapublic function encodeForCode128(object $parsed): stringpublic function encodeForQrCode(object $parsed): stringpublic function encodeForDataMatrix(object $parsed): stringpublic function validateAI(string $ai, string $value): boolpublic function codewordsFor(string $data): arrayสัญญาพฤติกรรม
หัวข้อที่มีชื่อว่า “สัญญาพฤติกรรม”การ resolve รีจิสทรี
หัวข้อที่มีชื่อว่า “การ resolve รีจิสทรี”factory รีจิสทรีเริ่มต้นของ Core pre-bind ตัวเข้ารหัสของ Pro เป็นรายการแบบ lazy ที่ต้องมีสิทธิ์ใช้งานความสามารถ BarcodeProServiceProvider::register() เป็นทางเลือกสำรองที่รองรับสำหรับแอปพลิเคชันที่ประกอบรีจิสทรีโดยไม่มีค่าเริ่มต้น เช่นการผสานเฟรมเวิร์กที่มีคอนเทนเนอร์ของตนเอง ตัวเข้ารหัสแต่ละตัวแปลงเพย์โหลดสตริงและอ็อพชันต่อระบบสัญลักษณ์เป็นอ็อบเจกต์ข้อมูลบาร์โค้ดที่ตัวเรนเดอร์หน้าแปลงเป็น operator เนื้อหา PDF
การแจงและการตรวจสอบ GS1
หัวข้อที่มีชื่อว่า “การแจงและการตรวจสอบ GS1”Gs1DataParser รับสตริง AI ที่อ่านได้โดยมนุษย์ ((01)09521234543213(17)260131) และ GS1 Digital Link URI โดยสร้างลำดับไบต์ที่เข้ารหัสสำหรับตัวพา GS1-128, QR Code และ Data Matrix พร้อมใช้แบบแผน FNC1 และตัวคั่นกลุ่มของแต่ละตัวพา Gs1Validator รันไปป์ไลน์ห้าขั้น: แจง check digit (GTIN, SSCC) ตรรกะวันที่ กฎ cross-AI และ AI ที่จำเป็นตามโปรไฟล์อุตสาหกรรม ความล้มเหลวในการแจงให้ผลลัพธ์ที่ไม่ถูกต้องซึ่งมีผลการตรวจพบ ไม่ได้โยนข้อยกเว้น ผลการตรวจพบถูกแบ่งตามความรุนแรงเป็น error, warning และ info
การจ่ายงานตัวแปร GS1 DataBar
หัวข้อที่มีชื่อว่า “การจ่ายงานตัวแปร GS1 DataBar”Gs1DataBarEncoder::encode() จ่ายงานตัวแปร Annex J ของ ISO/IEC 24724:2011 ทั้งเจ็ดผ่านสัญญาอ็อพชันเดียว Omnidirectional, Truncated, Stacked และ Stacked Omnidirectional ใช้พีชคณิตความกว้างองค์ประกอบ §5 ร่วมกันพร้อม check character แบบ mod-79 Limited ใช้พีชคณิต symbol-character §6 ของตนเองพร้อม check character แบบ mod-89 Expanded และ Expanded Stacked ใช้พีชคณิต §7 (17,4) คือ state machine การบีบอัดสามโหมด §7.2.5.5 แบบตัวเลข ตัวอักษรผสม และ ISO/IEC 646 บวกกับ check character แบบ mod-211 (§7.2.6) ตระกูล §5/§6 รับ GTIN-14 14 หลักพร้อม check digit แบบ mod-10 หรือการระบุรายการ 13 หลัก ตระกูล §7 รับสตริงองค์ประกอบ GS1 AI ดิบ (ตัวเลข ตัวอักษร ชุดย่อยเครื่องหมายวรรคตอน ISO/IEC 646 และ FNC1 เป็นไบต์ 0x1D) อ็อพชัน linkage ตั้งค่า linkage flag ของส่วนประกอบ 2D สำหรับใช้เป็นส่วนประกอบเชิงเส้นของสัญลักษณ์ GS1 Composite
ส่วนประกอบ GS1 Composite
หัวข้อที่มีชื่อว่า “ส่วนประกอบ GS1 Composite”CC-C สร้างส่วนประกอบขยาย 2D ที่สมบูรณ์บนตัวพา PDF417 เต็ม โดยแทรก CCSI codeword 920 ที่จำเป็นเป็น data codeword นำหน้า (ISO/IEC 24723:2010 §5.4) CC-A สร้าง data codeword แบบ base-928 ที่เป็นไปตามมาตรฐานผ่าน codewordsFor() พร้อมการตรวจตนเองแบบ round-trip encode-decode ที่ fail-closed แต่ปฏิเสธการเรนเดอร์สัญลักษณ์เต็ม CC-B ปฏิเสธการเข้ารหัส 2D ทั้งหมด linkFor() จับคู่ codeword ของส่วนประกอบกับตัวพา 1D เป็นค่า CompositeLinkage โดยบังคับความยอมรับได้และความจุของตัวพา
กรณีขอบและโหมดความล้มเหลว
หัวข้อที่มีชื่อว่า “กรณีขอบและโหมดความล้มเหลว”- ตัวเข้ารหัสทุกตัวปฏิเสธเพย์โหลดว่างด้วย
InvalidArgumentException - Micro QR: การขอระดับ error-correction
Hที่ไม่รองรับถูกบังคับเป็นLแบบเงียบแทนที่จะล้มเหลว (ตรวจสอบอ็อพชันล่วงหน้าหากต้องการการเลือก EC แบบ fail-closed) เพราะ ISO/IEC 18004 นิยามเฉพาะ L, M และ Q สำหรับสัญลักษณ์ Micro QR - rMQR: ระดับ error-correction ต้องเป็น M หรือ H เพย์โหลดที่เกินความจุของ 32 เวอร์ชันถูกปฏิเสธ ไม่ถูกตัดทอนเลย
- JabCode: จำนวนสีนอกชุด power-of-two ที่รองรับ ระดับ ECC นอกช่วง 0–10 หรือจำนวนสัญลักษณ์นอกช่วง 1–61 ถูกปฏิเสธ ความล้มเหลวในการเข้ารหัสปลายทางโยน
JabCodeEncodingException - GS1 DataBar: ตระกูล §5/§6 ตรวจสอบ check digit แบบ mod-10 ของ GTIN และ Limited จำกัด indicator digit เป็น 0 หรือ 1 ตระกูล §7 ปฏิเสธอักขระที่เข้ารหัสไม่ได้และตัวคั่น FNC1 ที่ต่อท้ายหรือซ้ำ Expanded Stacked ปฏิเสธจำนวน symbol-character ที่เป็นเลขคี่ต่อแถวและความสูงต่อแถวที่ต่ำกว่าค่าต่ำสุด 34X การตรวจตนเองของโครงสร้างภายในล้มเหลวด้วย
InvalidSymbolStructureExceptionแทนที่จะปล่อยสัญลักษณ์ที่ผิดรูปแบบ - GS1 Composite:
encode()ของ CC-A และ CC-B โยนUnsupportedBarcodeFeatureเสมอ (fail closed) CC-C โยนBarcodeExceptionเมื่อข้อมูลว่างหรือความจุ PDF417 ล้น (มากกว่า 925 codeword) และโยนCompositeLinkageExceptionสำหรับตัวพาที่รับไม่ได้ - การตรวจสอบ GS1 ตั้งค่าสถานะโครงสร้าง AI ที่ผิดรูปแบบและ check digit ที่ไม่ถูกต้องก่อนการเข้ารหัส สตริง supply-chain ที่ไม่ถูกต้องไม่เคยสร้างสัญลักษณ์ที่สแกนได้และเป็นไปตามมาตรฐาน
- IMB รับเฉพาะอินพุต 20, 25, 29 หรือ 31 หลักเท่านั้น
- การเข้ารหัสบาร์โค้ดไม่ดำเนินการเข้ารหัสลับ ไม่มีพฤติกรรมเฉพาะโหมด FIPS ตัวเข้ารหัสรันเหมือนกันไม่ว่าโปรไฟล์ FIPS จะเป็นอย่างไร
การเป็นไปตามข้อกำหนด
หัวข้อที่มีชื่อว่า “การเป็นไปตามข้อกำหนด”NextPDF นำระบบสัญลักษณ์เหล่านี้ไปใช้ตามมาตรฐานที่เผยแพร่ซึ่งอ้างถึงด้านล่างและปักหมุด reference trace ไว้ในชุดทดสอบ ข้อความบนหน้านี้เป็นการอ้างความสามารถ คือการรองรับไม่ใช่ความสอดคล้อง และความสอดคล้องไม่ใช่การรับรอง NextPDF ไม่ถือการรับรองระบบสัญลักษณ์ใด จุดยึดข้อถูกถอดความจากซอร์สของผลิตภัณฑ์และ fixture ความสอดคล้องของมัน คลังของ compliance-engine ไม่ครอบคลุมมาตรฐานระบบสัญลักษณ์บาร์โค้ด จุดยึดด้านล่างจึงอิงผลิตภัณฑ์โดยไม่มี reference identifier
| พื้นผิว | มาตรฐาน | จุดยึดข้อ (ถอดความ) |
|---|---|---|
| พีชคณิตความกว้างองค์ประกอบ GS1 DataBar | ISO/IEC 24724:2011 | §5.2 symbol-character structure; Annex F.1 worked example (Omnidirectional); Annex F.2 (Limited); Annex F.3 (Expanded) |
| เค้าโครง stacked ของ GS1 DataBar | ISO/IEC 24724:2011 | §5.4 Stacked; §5.5 Stacked Omnidirectional; §7.2.8 Expanded Stacked row partition and separators |
| การเข้ารหัส GS1 DataBar Expanded | ISO/IEC 24724:2011 | §7.2.5.5 three-mode compaction state machine; §7.2.6 mod-211 check character |
| การเชื่อมโยง GS1 Composite และ CC-C | ISO/IEC 24723:2010 | §5.4 CCSI codeword semantics; §5.1 carrier admissibility |
| codeword ของ GS1 Composite CC-A | ISO/IEC 24723:2010 | §5 general-purpose binary-string encodation with base-928 conversion |
| โครงสร้างสัญลักษณ์ rMQR | ISO/IEC 23941:2022 | §6.3.2 Table 1 version dimensions; §7.8.2 fixed mask; Annex C / Annex I format-information reference |
| Micro QR | ISO/IEC 18004 | Micro QR M1–M4 capacity and format information |
| Han Xin Code | ISO/IEC 20830:2021 | Symbol structure; finder and alignment patterns; GB 2312 Region 1/2 modes; Reed–Solomon ECC; masking |
| JabCode | ISO/IEC 23634 | Symbol, colour, and ECC structure |
| ระบบสัญลักษณ์ไปรษณีย์ | USPS-B-3200 | Intelligent Mail Barcode field structure |
สถานะการรองรับต่อระบบสัญลักษณ์
หัวข้อที่มีชื่อว่า “สถานะการรองรับต่อระบบสัญลักษณ์”ตัวแปรได้สถานะ Verified เมื่อ fixture ภายใต้ pro/tests/** ใช้งานมัน โดยควรเป็น reference trace ที่ปักหมุดกับตัวอย่างที่ทำงานแล้วซึ่งเผยแพร่ ตัวแปรที่มาพร้อมแต่ไม่มี fixture เฉพาะจะคงสถานะ Claimed ตัวแปรที่ไม่มีตัวเข้ารหัสคือ Not supported
| ระบบสัญลักษณ์ / ตัวแปร | สถานะ | หลักฐาน (เส้นทางทดสอบ) | หมายเหตุ |
|---|---|---|---|
| Micro QR (M1–M4) | Verified | pro/tests/Unit/Barcode/MicroQrEncoderTest.php | ระดับหน่วย fixture reference-trace ของตัวอย่างที่ทำงานแล้วเป็น backfill ที่ติดตามไว้ |
| DotCode | Verified | pro/tests/Unit/Barcode/DotCodeEncoderTest.php; DotCodeGfArithmeticTest.php | ครอบคลุมเลขคณิต Galois-field ไม่มี round trip ของตัวถอดรหัสจากผู้ขาย |
| Han Xin Code | Verified | pro/tests/Unit/Barcode/HanXinEncoderTest.php; HanXinRsEncodingTest.php | เส้นทางการเข้ารหัส Reed–Solomon ถูกใช้งานอย่างชัดแจ้ง |
| JabCode (1–61 symbols, 4–256 colors, ECC 0–10) | Verified | pro/tests/Unit/Barcode/JabCode/JabCodeEncoderTest.php (+ 11 component suite ในไดเรกทอรีเดียวกัน) | cascade หลายสัญลักษณ์และช่วง ECC ถูกใช้งาน ไม่มี round trip ของตัวถอดรหัสจากผู้ขาย |
| USPS Intelligent Mail Barcode | Verified | pro/tests/Unit/Barcode/ImbEncoderTest.php; ImbRoutingCodeTest.php | การตรวจสอบ routing-code และความยาว 20/25/29/31 หลักถูกใช้งาน |
| rMQR — all 32 ISO/IEC 23941 versions | Verified | pro/tests/Conformance/Barcode/Rmqr/AnnexValidatedSizesTest.php; RmqrAnnexCFormatInfoTest.php; pro/tests/Unit/Barcode/Rmqr/RmqrEncoderTest.php | คู่เวอร์ชันและ EC ถูกตรวจกับ ISO/IEC 23941 Table 1 ค่าอ้างอิง format-information ตาม Annex C / Annex I |
| GS1 DataBar — Omnidirectional / Truncated | Verified | pro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarReferenceTest.php | byte-equal กับตัวอย่างที่ทำงานแล้วของ Annex F.1 Truncated ใช้การเข้ารหัสร่วมกันที่ความสูงลดลง |
| GS1 DataBar — Stacked / Stacked Omnidirectional | Verified | pro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarStackedReferenceTest.php | การแยกแถวอนุพันธ์จาก trace ของ Annex F.1 การสร้างตัวคั่นตาม §5.4 และ §5.5 |
| GS1 DataBar — Limited | Verified | pro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarLimitedReferenceTest.php; pro/tests/Unit/Barcode/Gs1DataBar/Gs1DataBarLimitedEncoderTest.php | byte-equal กับตัวอย่างที่ทำงานแล้วของ Annex F.2 (item 00098765432105) |
| GS1 DataBar — Expanded | Verified | pro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarExpandedReferenceTest.php; pro/tests/Integration/Barcode/Gs1DataBarExpandedTwoDecoderTest.php | byte-equal กับตัวอย่างที่ทำงานแล้วของ Annex F.3 ((10)12A) round trip ตัวถอดรหัสอิสระเทียบกับ zxing-cpp และ ZBar |
| GS1 DataBar — Expanded Stacked | Verified | pro/tests/Unit/Barcode/Gs1DataBar/Gs1DataBarExpandedEncoderTest.php (กรณี stacked) round trip แบบ integration ด้านบน | ไปป์ไลน์ข้อมูลเดียวกับ Expanded แถวเดียว การแบ่งแถวและตัวคั่น §7.2.8 ถูก assert |
| GS1 Composite — CC-C (PDF417 carrier) | Verified | pro/tests/Conformance/Barcode/Gs1Composite/CompositeComponentCTest.php; CompositeRoundtripTest.php; CompositeLinkageTest.php | ครอบคลุมการทำงานร่วมกันของ CCSI codeword 920 และ linkage-flag |
| GS1 Composite — CC-A | Partial | pro/tests/Unit/Barcode/Gs1Composite/CompositeComponentACodewordTest.php; pro/tests/Conformance/Barcode/Gs1Composite/CompositeComponentATest.php | การสร้าง codeword Verified (base-928 การตรวจตนเองแบบ round-trip) การเรนเดอร์สัญลักษณ์เต็มไม่รองรับ — encode() fail closed |
| GS1 Composite — CC-B | Not supported | pro/tests/Conformance/Barcode/Gs1Composite/CompositeComponentBTest.php (assert การปฏิเสธแบบ fail-closed) | ไม่มีการเข้ารหัส 2D ตัวช่วยเชื่อมโยง (CCSI 901) ยังคงพร้อมใช้ |
| GS1 AI parser | Verified | pro/tests/Unit/Barcode/Gs1DataParserTest.php; Gs1DataParserFnc1Test.php | ทั้งสองรูปแบบอินพุตและเอาต์พุตลำดับไบต์ของตัวพาทั้งสามถูกใช้งาน |
| GS1 supply-chain validator | Verified | pro/tests/Unit/Barcode/Gs1ValidatorTest.php; Gs1ValidatorCrossAiTest.php; pro/tests/Unit/Barcode/Gs1/Gs1ValidatorDateValidationEdgeCaseTest.php | check digit การรวม cross-AI ที่จำเป็น และตรรกะวันที่ถูกใช้งาน |
หมายเหตุการพัฒนา
หัวข้อที่มีชื่อว่า “หมายเหตุการพัฒนา”- จุดยึดหลักฐานบนหน้านี้เป็นเส้นทางทดสอบภายใต้
pro/tests/**repository ไม่มีไดเรกทอรีexamples/สำหรับโมดูลนี้ - ชื่อความสามารถทั้งเจ็ดที่ระบุไว้ในหัวข้อความพร้อมใช้งานและการอนุญาตคือคีย์ที่ service provider ผูก ตัวเข้ารหัส IMB ถูกสร้างโดยตรงและไม่มีคีย์รีจิสทรี
- CC-A ปล่อยเฉพาะเมธอด encodation อเนกประสงค์ เมธอดบีบอัดเฉพาะแอปพลิเคชันเป็นส่วนตกค้างด้านความหนาแน่นที่บันทึกไว้ ไม่ใช่ช่องว่างด้านความถูกต้อง
ขอบเขตการเผยแพร่
หัวข้อที่มีชื่อว่า “ขอบเขตการเผยแพร่”หน้านี้บันทึกเฉพาะพฤติกรรมที่สังเกตได้จากภายนอกและพื้นผิว public API ที่รองรับเท่านั้น เส้นทาง namespace ภายใน คลาสตัวช่วย ตารางกลไก ชื่อไฟล์ runbook และคำนำหน้า ticket อยู่นอกขอบเขต