ข้ามไปยังเนื้อหา
getnextpdf.com

Pro รุ่น

Barcode

NextPDF Pro เพิ่มระบบสัญลักษณ์บาร์โค้ดเฉพาะทางแบบ 2D และห่วงโซ่อุปทานบนระบบสัญลักษณ์แบบ linear และ QR ในรุ่นโอเพนซอร์ส แต่ละระบบสัญลักษณ์เรนเดอร์ลงในพื้นผิวหน้า PDF โดยตรงเป็น content stream แบบ deterministic

ความสามารถนี้มาพร้อมกับ NextPDF Pro (nextpdf/pro) และเปิดใช้งานด้วย license envelope ระดับ Pro การนำไปติดตั้งที่ไม่มีสิทธิ์ดังกล่าวจะไม่โหลดคลาสของความสามารถนี้ เปรียบเทียบรุ่นและขอรับสิทธิ์การใช้งาน

Terminal window
composer require nextpdf/pro:^3

ตัวเข้ารหัสของ Pro ลงทะเบียนตัวเองผ่าน barcode encoder registry มาตรฐาน แอปพลิเคชันที่สร้าง registry ของตัวเองสามารถลงทะเบียนตัวเข้ารหัสของ Pro ใหม่อย่างชัดเจนผ่าน service provider ที่เผยแพร่

รุ่นโอเพนซอร์สครอบคลุมระบบสัญลักษณ์ linear และ QR ในชีวิตประจำวัน NextPDF Pro ขยาย registry เดียวกันด้วยระบบสัญลักษณ์เฉพาะทางสำหรับงานค้าปลีก โลจิสติกส์ ไปรษณีย์ และงานอุตสาหกรรมความหนาแน่นสูง:

  • Micro QR Code — QR variant แบบกะทัดรัดสำหรับพื้นที่ฉลากขนาดเล็ก
  • DotCode — ระบบสัญลักษณ์ dot-matrix ที่ออกแบบมาสำหรับการทำเครื่องหมายอุตสาหกรรมความเร็วสูง
  • Han Xin Code — ระบบสัญลักษณ์ 2D ที่มีความจุข้อความ CJK ชุดใหญ่ในตัว ตาม ISO/IEC 20830
  • JabCode — ระบบสัญลักษณ์ 2D แบบ polychrome ที่มีการต่อเรียงหลายสัญลักษณ์
  • rMQR — Micro QR variant แบบสี่เหลี่ยมผืนผ้าสำหรับฉลากแคบและกว้าง
  • GS1 DataBar — ตระกูลระบบสัญลักษณ์ค้าปลีกและคูปอง GS1
  • GS1 Composite (CC-C) — ฐาน 1D ที่เชื่อมโยงบวกกับคอมโพเนนต์ส่วนขยาย 2D PDF417 ความหนาแน่นสูงที่พาข้อมูล GS1 Application Identifier (การเข้ารหัสคอมโพเนนต์ส่วนขยาย 2D CC-A และ CC-B ไม่รองรับในรุ่นนี้ ดู support matrix)

ตัวเข้ารหัสแต่ละตัวผลิตออบเจกต์ข้อมูลบาร์โค้ดที่ตัวเรนเดอร์หน้าแปลงเป็นตัวดำเนินการ content ของ PDF การเข้ารหัสเป็นแบบ deterministic คืออินพุตและตัวเลือกเดียวกันผลิตรูปแบบ module เดียวกันเสมอ ซึ่งทำให้เอกสารที่ลงนามและเก็บถาวรสามารถทำซ้ำได้

เอกสารอ้างอิงเชิงลึกของบาร์โค้ด มี support matrix ต่อระบบสัญลักษณ์พร้อมหลักฐานมาด้วย สำหรับทุกระบบสัญลักษณ์และ variant matrix บันทึกหนึ่งในสามสถานะ คือ มี conformance fixture ภายใน repository ที่ใช้งานมัน (Verified), พื้นผิวการนำไปใช้จริงยืนยันมันโดยไม่มี fixture เฉพาะ (Claimed), หรือมันอยู่นอกขอบเขต (Not supported) NextPDF รายงาน matrix อย่างซื่อตรง คือ variant ที่มาพร้อมตัวเข้ารหัสแต่ขาด reference-trace fixture ยังคงเป็น Claimed พร้อมบันทึก backfill แทนที่จะระบุเกินจริง

ตัวเข้ารหัสของ Pro ทุกตัวเป็นฟังก์ชันบริสุทธิ์ คือ payload และตัวเลือกเดียวกันผลิต module matrix เดียวกันเสมอ โดยไม่มีสถานะซ่อนเร้นหรือความสุ่มที่ถูก seed ความ deterministic นั้นคือการตัดสินใจที่รับน้ำหนัก มันทำให้บาร์โค้ดผ่านการ round-trip ในเอกสารที่ลงนามหรือเก็บถาวรได้โดยไม่รบกวน byte stream ดังนั้นการเรนเดอร์ใหม่จึงไม่ทำให้ลายเซ็นเป็นโมฆะ อีกทั้งยังทำให้ความสอดคล้องสามารถตรวจสอบได้ คือ support matrix ตรึงแต่ละระบบสัญลักษณ์ไว้กับ reference trace ที่จัดเก็บไว้ ตรวจสอบทีละบิตเทียบกับ golden file การขยาย BarcodeEncoderRegistry ของ Core แทนที่จะ fork มันทำให้การรับประกันเหล่านี้เหมือนกันในทั้งรุ่นโอเพนและ Pro

ภูมิหลังการออกแบบ: ไบต์เดิมทุกครั้ง: PDF ที่ทำซ้ำได้

Terminal window
composer require nextpdf/pro:^3

พื้นผิวบาร์โค้ดสาธารณะของ Pro ประกอบด้วย:

  • จุดเริ่มต้น service-provider แบบ static ที่ลงทะเบียนตัวเข้ารหัส 2D ของ Pro ลงใน barcode encoder registry (MicroQR, DotCode, HanXin, JabCode, RMQR, GS1DataBar และคีย์คอมโพเนนต์ GS1 Composite CC-C gs1-composite-cc-c) การเข้ารหัสคอมโพเนนต์ส่วนขยาย 2D GS1 Composite CC-A และ CC-B ไม่รองรับในรุ่นนี้และไม่ได้ลงทะเบียน
  • ตัวแยกวิเคราะห์ GS1 Application Identifier ที่รับทั้งสตริง AI ที่อ่านได้และ GS1 Digital Link URI และผลิตลำดับไบต์ที่เข้ารหัสสำหรับตัวพา GS1-128, QR Code และ Data Matrix
  • ตัวตรวจสอบความถูกต้องห่วงโซ่อุปทาน GS1 ที่ตรวจสอบ check digit, โครงสร้าง AI, ตรรกะวันที่ และการรวม AI ที่บังคับตามโปรไฟล์อุตสาหกรรม

ตารางลายเซ็นเมท็อดที่สร้างขึ้นทั้งหมดเรนเดอร์ในเอกสารอ้างอิงเชิงลึกของบาร์โค้ด

use NextPDF\Barcode\BarcodeEncoderRegistry;
use NextPDF\Pro\Barcode\BarcodeProServiceProvider;
$registry = new BarcodeEncoderRegistry();
BarcodeProServiceProvider::register($registry);
// $registry now resolves the Pro specialty symbologies.
use NextPDF\Pro\Barcode\Gs1\Gs1Validator;
use NextPDF\Pro\Barcode\Gs1\Gs1SupplyChainProfile;
$result = Gs1Validator::validate(
'(01)09521234543213(17)260131(10)ABC123',
Gs1SupplyChainProfile::NONE,
);
if (! $result->isValid) {
// Surface findings to your observability pipeline before encoding.
foreach ($result->findings as $finding) {
$logger->warning('GS1 validation finding', [
'rule' => $finding->ruleId,
'detail' => $finding->message,
]);
}
}
  • registry เริ่มต้น pre-bind รายการตัวเข้ารหัสของ Pro แบบ lazy และเกตมันผ่าน capability registry การเรียก BarcodeProServiceProvider::register() อย่างชัดเจนคือ fallback ที่รองรับเมื่อแอปพลิเคชันประกอบ registry ของตัวเองโดยไม่มีค่าเริ่มต้น
  • การลงทะเบียนใหม่เป็นแบบ idempotent คือการเรียก register() ครั้งที่สองแทนที่การ bind ครั้งแรกแทนที่จะยกข้อผิดพลาด
  • ความครอบคลุม variant ของ GS1 DataBar เป็นแบบบางส่วนตามการออกแบบ Omnidirectional, Truncated, Stacked, Stacked Omnidirectional และ Limited ผ่านการตรวจสอบด้วยการอ้างอิง; Expanded และ Expanded Stacked อยู่นอกขอบเขตในรุ่นนี้ ดู support matrix
  • rMQR รับทุกเวอร์ชัน ISO 23941 ผ่านชุดความสอดคล้องที่ตรวจสอบตาม Annex เมทาดาทาการติดตามขอบเขตที่มีมาก่อนการขยายช่วงขนาดในภายหลังอาจระบุต่ำกว่าความจริง support matrix บันทึกความจริงที่ตรวจสอบในโค้ด

ต้นทุนการเข้ารหัสปรับขนาดตามความยาว payload และขนาดสัญลักษณ์เป้าหมาย แต่ละระบบสัญลักษณ์จัดวางสัญลักษณ์ของมันในรอบเดียวโดยไม่มีการ reflow การต่อเรียงหลายสัญลักษณ์ของ JabCode ปรับขนาดตามจำนวนสัญลักษณ์ (1–61) การเข้ารหัสถือ module matrix ไว้ในหน่วยความจำ เวอร์ชันสัญลักษณ์ที่ใหญ่ที่สุดที่เลือกจำกัดต้นทุน

ตัวเข้ารหัสบาร์โค้ดไม่รันเนื้อหา payload มันเข้ารหัสเป็นข้อมูล การตรวจสอบความถูกต้อง GS1 ปฏิเสธโครงสร้าง AI ที่ผิดรูปและ check digit ที่ไม่ถูกต้องก่อนการเข้ารหัส ซึ่งป้องกันไม่ให้สตริงห่วงโซ่อุปทานที่ผิดรูปผลิตสัญลักษณ์ที่สแกนได้แต่ไม่สอดคล้อง ตัวเข้ารหัสไม่บันทึก payload เอง แอปพลิเคชันต้องล้าง payload ที่อ่อนไหวออกจากบันทึกของตัวเอง

แต่ละระบบสัญลักษณ์เป็นไปตามมาตรฐานที่เผยแพร่ที่เกี่ยวข้อง (ISO/IEC 24724 สำหรับ GS1 DataBar, ISO/IEC 24723 สำหรับ GS1 Composite, ISO/IEC 23941 สำหรับ rMQR, ISO/IEC 18004 Annex สำหรับ Micro QR, ISO/IEC 20830 สำหรับ Han Xin Code, ISO/IEC 23634 สำหรับ JabCode, USPS-B-3200 สำหรับระบบสัญลักษณ์ไปรษณีย์) การแมปความสอดคล้องระดับข้อพร้อมตัวระบุการอ้างอิงเรนเดอร์ในเอกสารอ้างอิงเชิงลึกของบาร์โค้ด

หน้านี้บันทึกเฉพาะพฤติกรรมที่สังเกตได้จากภายนอกและพื้นผิว API สาธารณะที่รองรับเท่านั้น เส้นทาง namespace ภายใน คลาสตัวช่วย ตารางกลไก ชื่อไฟล์ runbook และคำนำหน้า ticket อยู่นอกขอบเขต