İçeriğe geç
getnextpdf.com

Pro sürüm

Barcode — Derinlemesine başvuru

NextPDF Pro barkod yüzeyi, Core barkod modülünün üzerine özel 2D ve tedarik zinciri sembolojileri ekler. Kayıt defterinden çözümlenen altı 2D kodlayıcı (Micro QR, DotCode, Han Xin Code, JabCode, rMQR, GS1 DataBar), bir GS1 Composite 2D bileşen kodlayıcısı (CC-C), USPS Intelligent Mail 1D kodlayıcısı ve bir GS1 Application Identifier ayrıştırıcısı ile tedarik zinciri doğrulayıcısı sunar. Kodlama belirleyicidir: aynı yük ve seçenekler her zaman özdeş bir modül matrisi üretir. Bu sayfa; genel API’yi, davranış sözleşmesini, arıza kiplerini ve semboloji başına uygunluk kanıtını belirtir.

Bu yetenek NextPDF Pro (nextpdf/pro) içinde sunulur ve bir Pro katmanı lisans zarfıyla etkinleşir. Bu yetkiye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve bir lisans edinin.

Terminal window
composer require nextpdf/pro:^3

Her semboloji, lisans zarfında kendi yetenek adını bağlar: barcode.microqr, barcode.dotcode, barcode.hanxin, barcode.jabcode, barcode.rmqr, barcode.gs1databar ve barcode.gs1-composite-cc-c. Bir yetenek lisanslı değilken, kayıt defteri o kodlayıcıyı çözümlemez. GS1 Composite CC-A ve CC-B tam sembol kodlaması desteklenmez (destek durumu tablosuna bakın); bu nedenle hiçbir barcode.gs1-composite-cc-a veya barcode.gs1-composite-cc-b anahtarı kayıtlı değildir.

Kayıt defteri anahtarları, Core NextPDF\Barcode\Barcode2DType durum değerlerinden artı gs1-composite-cc-c sabit anahtarından gelir. Kayıt defterinden çözümlenen kodlayıcılar için kararlı sözleşme, kodlayıcı FQCN’i değil kayıt defteri anahtarıdır.

SembolParametrelerVarsayılan davranışDöndürürŞununla fırlatır veya arızalanırNotlar
BarcodeProServiceProvider::register()BarcodeEncoderRegistry $registryYedi Pro kayıt defteri anahtarının tümünü bağlarvoidStatik; etkisiz — ikinci bir çağrı ilk bağlamanın yerini alır
MicroQrEncoder::encode()$data; seçenekler ecLevel ('L', 'M', 'Q'; varsayılan 'L'), version (1–4 veya null), mask (0–3 veya null)Uyan en küçük sürümü M1–M4 arasında otomatik seçerBarcode2DDataInvalidArgumentExceptionDesteklenmeyen 'H', SESSİZCE 'L'’ye zorlanır (kapalı-arızalama EC seçimi gereken çağıranlar önceden doğrulamalıdır); M1, ecLevel’i yok sayar
DotCodeEncoder::encode()$data; seçenekler gs1 (bool, varsayılan false), columns (int), rows (int), ratio (float, varsayılan 1.5)1.5 genişlik:yükseklik oranında otomatik ızgara boyutlandırmaBarcode2DDataInvalidArgumentExceptionIzgara boyutları eksen başına zorlanabilir
HanXinEncoder::encode()$data; seçenekler ecLevel (0–3, varsayılan 1), version (1–84, varsayılan otomatik)Uyan en küçük sürümBarcode2DDataInvalidArgumentExceptionISO/IEC 20830 uyarınca GB 2312 Region 1/2 metin kipleri
JabCodeEncoder::encode()$data; seçenekler colors (4, 8, 16, 32, 64, 128, 256; varsayılan 8), eccLevel (0–10, varsayılan 3), symbolNumber (1–61, varsayılan 1), symbolVersions, symbolPositions, symbolEccLevelsTek 8 renkli sembolBarcodeColorDataInvalidArgumentException, JabCodeEncodingExceptionPaletli çokrenkli modül matrisi
RmqrEncoder::encode()$data; seçenekler ecLevel (varsayılan RmqrConstants::EC_M veya EC_H), version (ör. 'R7x43', varsayılan otomatik)32 ISO/IEC 23941 sürümünden uyan en küçüğüBarcode2DDataInvalidArgumentExceptionKapasiteyi aşan yükleri reddeder; asla kesmez
Gs1DataBarEncoder::encode()$data; seçenekler variant (Gs1DataBarVariant, varsayılan OMNIDIRECTIONAL), linkage (bool, varsayılan false), height (int, varsayılan türev minimumu; Expanded Stacked için satır başına), segmentsPerRow (int, varsayılan 4; yalnızca Expanded Stacked)GTIN girdisini (§5/§6 ailesi) veya bir GS1 AI öğe dizesini (§7 ailesi) kodlarBarcode2DDataInvalidArgumentException; InvalidSymbolStructureExceptionYedi ISO/IEC 24724 Annex J türevinin tümü kodlanır
Gs1DataBarVariantisImplemented(), yedi durumun tümü için true döndürürenum (7 durum)Annex J uyarınca minimumHeightX() ve defaultHeightX()
ImbEncoder::encode()string $code (20, 25, 29 veya 31 basamak)65 dört durumlu çubukBarcodeDataInvalidArgumentException1D kodlayıcı arabirimi; bir 2D kayıt defteri anahtarı değil
ImbEncoder::encodeToString()string $codeÇubuk durumları bir T/A/D/F dizesi olarakstringInvalidArgumentExceptionUSPS referans vektörlerine karşı denetimler için
Gs1DataParser::parse()string $dataDigital Link URI’lerini otomatik algılar, aksi hâlde (AI)value biçimiGs1ParsedDataInvalidArgumentExceptionCore Gs1DataParserInterface sözleşmesini uygular
Gs1DataParser::parseDigitalLink()string $uriBir GS1 Digital Link URI’sini ayrıştırırGs1ParsedDataInvalidArgumentException
Gs1DataParser::encodeForCode128() / ::encodeForQrCode() / ::encodeForDataMatrix()object $parsedO taşıyıcının FNC1 kuralıyla taşıyıcı bayt dizisistringBir Gs1ParsedData örneği bekler
Gs1DataParser::validateAI()string $ai, string $valueBir AI değerinin yapısal denetimibool
Gs1Validator::validate()string $barcodeData, Gs1SupplyChainProfile $profile (varsayılan NONE)run() üzerinden statik hızlı yolGs1ValidationResultAyrıştırma arızaları, istisnalar değil bulgular olur
Gs1Validator::run()validate() ile aynıAyrıştırma, kontrol basamakları, tarihler, çapraz-AI kuralları, profilGs1ValidationResultÖrnek yolu; kurucu, enjekte edilen bir ayrıştırıcı kabul eder
Gs1SupplyChainProfileNONE, profil kurallarını atlarenum (5 durum)RETAIL, FOOD, PHARMA, LOGISTICS, NONE; requiredAIs(), recommendedAIs(), primaryIdentifiers()
Gs1ValidationResultBulgular, oluşturma sırasında önem derecesine göre bölümlenirreadonly sınıfisValid, findings, errors, warnings, infos, parsedData; passes(), fails(), totalFindings()
Gs1ValidationFinding / Gs1FindingSeverityseverity, ruleId, message, isteğe bağlı ai ve suggestionreadonly sınıf / enumÖnem dereceleri: Error, Warning, Info
CompositeComponentA::codewordsFor()string $data§5 genel amaçlı ikili-dize kodlaması, taban-928 dönüşümü, gidiş-dönüş öz-denetimilist<int> (her biri 0–927)InvalidArgumentExceptionlinkFor()’a veya harici bir CC-A taşıyıcı oluşturucusuna besleyin
CompositeComponentA::encode()yok sayılırCC-A tam sembol oluşturmayı reddederUnsupportedBarcodeFeature (her zaman)Kapalı-arızalama; Uç durumlar’a bakın
CompositeComponentB::encode()yok sayılırCC-B 2D kodlamayı reddederUnsupportedBarcodeFeature (her zaman)linkFor() kullanılabilir kalır (CCSI 901)
CompositeComponentC::encode()$data; seçenekler PDF417 taşıyıcısına iletilir; carrierType (varsayılan GS1_128)CCSI kod sözcüğü 920 başta olacak şekilde tam PDF417 taşıyıcısıBarcode2DDataBarcodeException; CompositeLinkageExceptionYalnızca GS1_128 taşıyıcısı kabul edilebilir
CompositeComponent{A,B,C}::linkFor()string $carrierId, array $codewords, CompositeCarrierType $carrierTypeBileşen kod sözcüklerini bir 1D taşıyıcıyla eşlerCompositeLinkageCompositeLinkageExceptionTaşıyıcı kabul edilebilirliğini ve kapasitesini uygular
CompositeVariant / CompositeCarrierTypeCC_A, CC_B, CC_C; GS1_DATABAR, GS1_128enumlarmaxCodewords(), ccsi(), allowedCarriers(), usesFullPdf417()
public static function register(BarcodeEncoderRegistry $registry): void
public function encode(string $data, array $options = []): Barcode2DData
public static function validate(
string $barcodeData,
Gs1SupplyChainProfile $profile = Gs1SupplyChainProfile::NONE,
): Gs1ValidationResult
public function run(
string $barcodeData,
Gs1SupplyChainProfile $profile = Gs1SupplyChainProfile::NONE,
): Gs1ValidationResult
public function parse(string $data): Gs1ParsedData
public function parseDigitalLink(string $uri): Gs1ParsedData
public function encodeForCode128(object $parsed): string
public function encodeForQrCode(object $parsed): string
public function encodeForDataMatrix(object $parsed): string
public function validateAI(string $ai, string $value): bool
public function codewordsFor(string $data): array

Core varsayılan kayıt defteri fabrikası, Pro kodlayıcılarını geç bağlanan, yetenek-lisanslı girdiler olarak ön bağlar. BarcodeProServiceProvider::register(), varsayılanları olmayan bir kayıt defteri oluşturan uygulamalar (örneğin kendi kapsayıcısına sahip çerçeve entegrasyonları) için desteklenen geri dönüştür. Her kodlayıcı, bir dize yükünü ve semboloji başına seçenekleri, sayfa oluşturucunun PDF içerik operatörlerine dönüştürdüğü bir barkod veri nesnesine çevirir.

Gs1DataParser, insan tarafından okunabilen AI dizelerini ((01)09521234543213(17)260131) ve GS1 Digital Link URI’lerini kabul eder. GS1-128, QR Code ve Data Matrix taşıyıcıları için, her taşıyıcının FNC1 ve grup-ayırıcı kuralını uygulayarak kodlanmış bayt dizileri üretir. Gs1Validator, beş adımlı bir işlem hattı çalıştırır: ayrıştırma, kontrol basamakları (GTIN, SSCC), tarih mantığı, çapraz-AI kuralları ve endüstri profili zorunlu AI’leri. Bir ayrıştırma arızası, bulgular taşıyan geçersiz bir sonuç verir; istisna fırlatmaz. Bulgular, önem derecesine göre hatalara, uyarılara ve bilgilere bölünür.

Gs1DataBarEncoder::encode(), yedi ISO/IEC 24724:2011 Annex J türevinin tümünü tek bir seçenek sözleşmesi üzerinden sevk eder. Omnidirectional, Truncated, Stacked ve Stacked Omnidirectional, mod-79 kontrol karakterli §5 öğe genişliği cebrini paylaşır. Limited, mod-89 kontrol karakterli kendi §6 sembol-karakteri cebrini kullanır. Expanded ve Expanded Stacked, §7 (17,4) cebrini kullanır: §7.2.5.5 üç kipli sayısal, alfasayısal ve ISO/IEC 646 sıkıştırma durum makinesi artı bir mod-211 kontrol karakteri (§7.2.6). §5/§6 ailesi, mod-10 kontrol basamaklı 14 basamaklı bir GTIN-14 veya 13 basamaklı bir öğe kimliği alır. §7 ailesi, ham bir GS1 AI öğe dizesi alır (basamaklar, harfler, ISO/IEC 646 noktalama alt kümesi, bayt 0x1D olarak FNC1). linkage seçeneği, bir GS1 Composite sembolünün doğrusal bileşeni olarak kullanım için 2D bileşen bağlantı bayrağını ayarlar.

CC-C, zorunlu CCSI kod sözcüğü 920’yi başta gelen veri kod sözcüğü olarak enjekte ederek, tam PDF417 taşıyıcısı üzerinde eksiksiz bir 2D genişletilmiş bileşen üretir (ISO/IEC 24723:2010 §5.4). CC-A, codewordsFor() aracılığıyla, kapalı-arızalayan bir kodla-çöz gidiş-dönüş öz-denetimiyle uyumlu taban-928 veri kod sözcükleri üretir, ancak tam sembol oluşturmayı reddeder. CC-B, 2D kodlamayı tamamen reddeder. linkFor(), taşıyıcı kabul edilebilirliğini ve kapasitesini uygulayarak, bileşen kod sözcüklerini bir CompositeLinkage değeri olarak bir 1D taşıyıcıyla eşler.

  • Her kodlayıcı, boş bir yükü InvalidArgumentException ile reddeder.
  • Micro QR: desteklenmeyen H hata düzeltme düzeyini istemek, arızalanmak yerine SESSİZCE L’ye zorlanır (kapalı-arızalama EC seçimi gerekiyorsa seçenekleri önceden doğrulayın); çünkü ISO/IEC 18004, Micro QR sembolleri için yalnızca L, M ve Q tanımlar.
  • rMQR: hata düzeltme düzeyi M veya H olmalıdır; 32 sürümün kapasitesini aşan bir yük reddedilir, asla kesilmez.
  • JabCode: desteklenen ikinin kuvveti kümesi dışındaki bir renk sayısı, 0–10 dışındaki bir ECC düzeyi veya 1–61 dışındaki bir sembol sayısı reddedilir; alt akış kodlama arızaları JabCodeEncodingException fırlatır.
  • GS1 DataBar: §5/§6 ailesi, GTIN mod-10 kontrol basamağını doğrular ve Limited, gösterge basamağını 0 veya 1 ile kısıtlar. §7 ailesi, kodlanamayan karakterleri ve sondaki veya ikiye katlanmış FNC1 ayırıcılarını reddeder. Expanded Stacked, satır başına tek sayıda sembol-karakteri sayısını ve 34X minimumunun altındaki satır başına yükseklikleri reddeder. İç yapı öz-denetimleri, hatalı biçimlendirilmiş bir sembol yaymak yerine InvalidSymbolStructureException ile arızalanır.
  • GS1 Composite: CC-A ve CC-B encode(), her zaman UnsupportedBarcodeFeature fırlatır (kapalı arızalar). CC-C, boş veride veya PDF417 kapasite taşmasında (925’ten fazla kod sözcüğü) BarcodeException ve kabul edilemez bir taşıyıcı için CompositeLinkageException fırlatır.
  • GS1 doğrulaması, kodlamadan önce hatalı biçimlendirilmiş AI yapısını ve hatalı kontrol basamaklarını işaretler; geçersiz bir tedarik zinciri dizesi, asla taranabilir uyumlu bir sembol üretmez.
  • IMB yalnızca 20, 25, 29 veya 31 basamaklı girdileri kabul eder.
  • Barkod kodlaması hiçbir kriptografi gerçekleştirmez. Hiçbir FIPS moduna özgü davranış yoktur; kodlayıcılar, FIPS profilinden bağımsız olarak özdeş çalışır.

NextPDF, bu sembolojileri aşağıda atıfta bulunulan yayımlanmış standartlara göre uygular ve referans izlerini test paketine sabitler. Bu sayfadaki ifadeler yetenek iddialarıdır: destek uygunluk değildir ve uygunluk sertifikasyon değildir. NextPDF hiçbir semboloji sertifikasına sahip değildir. Kural çapaları, ürün kaynağından ve onun uygunluk armatürlerinden açıklanmıştır; compliance-engine külliyatı barkod semboloji standartlarını kapsamadığından, aşağıdaki çapalar referans tanımlayıcıları olmadan ürüne dayalıdır.

YüzeyStandartKural çapası (açıklamalı)
GS1 DataBar öğe genişliği cebriISO/IEC 24724:2011§5.2 sembol-karakter yapısı; Annex F.1 işlenmiş örnek (Omnidirectional); Annex F.2 (Limited); Annex F.3 (Expanded)
GS1 DataBar yığılmış yerleşimlerISO/IEC 24724:2011§5.4 Stacked; §5.5 Stacked Omnidirectional; §7.2.8 Expanded Stacked satır bölümü ve ayırıcılar
GS1 DataBar Expanded kodlamasıISO/IEC 24724:2011§7.2.5.5 üç kipli sıkıştırma durum makinesi; §7.2.6 mod-211 kontrol karakteri
GS1 Composite bağlantısı ve CC-CISO/IEC 24723:2010§5.4 CCSI kod sözcüğü semantiği; §5.1 taşıyıcı kabul edilebilirliği
GS1 Composite CC-A kod sözcükleriISO/IEC 24723:2010§5 taban-928 dönüşümüyle genel amaçlı ikili-dize kodlaması
rMQR sembol yapısıISO/IEC 23941:2022§6.3.2 Table 1 sürüm boyutları; §7.8.2 sabit maske; Annex C / Annex I biçim-bilgisi referansı
Micro QRISO/IEC 18004Micro QR M1–M4 kapasite ve biçim bilgisi
Han Xin CodeISO/IEC 20830:2021Sembol yapısı; bulucu ve hizalama desenleri; GB 2312 Region 1/2 kipleri; Reed–Solomon ECC; maskeleme
JabCodeISO/IEC 23634Sembol, renk ve ECC yapısı
Posta sembolojisiUSPS-B-3200Intelligent Mail Barcode alan yapısı

Bir türev, pro/tests/** altında bir armatür onu çalıştırdığında — tercihen yayımlanmış bir işlenmiş örneğe sabitlenmiş bir referans izi — Verified olur. Özel bir armatürü olmayan sunulmuş bir türev Claimed olarak kalır. Kodlayıcısı olmayan bir türev Not supported’dır.

Semboloji / türevDurumKanıt (test yolu)Notlar
Micro QR (M1–M4)Verifiedpro/tests/Unit/Barcode/MicroQrEncoderTest.phpBirim düzeyi; işlenmiş örnek referans-izi armatürü, izlenen bir geri doldurmadır
DotCodeVerifiedpro/tests/Unit/Barcode/DotCodeEncoderTest.php; DotCodeGfArithmeticTest.phpGalois alanı aritmetiği kapsanır; satıcı kod çözücü gidiş-dönüşü yok
Han Xin CodeVerifiedpro/tests/Unit/Barcode/HanXinEncoderTest.php; HanXinRsEncodingTest.phpReed–Solomon kodlama yolu açıkça çalıştırılır
JabCode (1–61 sembol, 4–256 renk, ECC 0–10)Verifiedpro/tests/Unit/Barcode/JabCode/JabCodeEncoderTest.php (+ aynı dizinde 11 bileşen paketi)Çok sembollü kademe ve ECC aralığı çalıştırılır; satıcı kod çözücü gidiş-dönüşü yok
USPS Intelligent Mail BarcodeVerifiedpro/tests/Unit/Barcode/ImbEncoderTest.php; ImbRoutingCodeTest.phpYönlendirme kodu ve 20/25/29/31 basamaklı uzunluk doğrulaması çalıştırılır
rMQR — tüm 32 ISO/IEC 23941 sürümüVerifiedpro/tests/Conformance/Barcode/Rmqr/AnnexValidatedSizesTest.php; RmqrAnnexCFormatInfoTest.php; pro/tests/Unit/Barcode/Rmqr/RmqrEncoderTest.phpSürüm ve EC çiftleri ISO/IEC 23941 Table 1’e karşı denetlenir; Annex C / Annex I biçim-bilgisi referans değerleri
GS1 DataBar — Omnidirectional / TruncatedVerifiedpro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarReferenceTest.phpAnnex F.1 işlenmiş örneğine bayt-eşit; Truncated, kodlamayı azaltılmış yükseklikte paylaşır
GS1 DataBar — Stacked / Stacked OmnidirectionalVerifiedpro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarStackedReferenceTest.phpSatır bölünmesi Annex F.1 izinden türetilir; ayırıcı yapısı §5.4 ve §5.5 uyarınca
GS1 DataBar — LimitedVerifiedpro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarLimitedReferenceTest.php; pro/tests/Unit/Barcode/Gs1DataBar/Gs1DataBarLimitedEncoderTest.phpAnnex F.2 işlenmiş örneğine bayt-eşit (öğe 00098765432105)
GS1 DataBar — ExpandedVerifiedpro/tests/Conformance/Barcode/Gs1DataBar/Gs1DataBarExpandedReferenceTest.php; pro/tests/Integration/Barcode/Gs1DataBarExpandedTwoDecoderTest.phpAnnex F.3 işlenmiş örneğine bayt-eşit ((10)12A); zxing-cpp ve ZBar’a karşı bağımsız kod çözücü gidiş-dönüşü
GS1 DataBar — Expanded StackedVerifiedpro/tests/Unit/Barcode/Gs1DataBar/Gs1DataBarExpandedEncoderTest.php (yığılmış durumlar); yukarıdaki entegrasyon gidiş-dönüşüTek satırlı Expanded ile aynı veri işlem hattı; §7.2.8 satır bölümü ve ayırıcılar öne sürülür
GS1 Composite — CC-C (PDF417 taşıyıcı)Verifiedpro/tests/Conformance/Barcode/Gs1Composite/CompositeComponentCTest.php; CompositeRoundtripTest.php; CompositeLinkageTest.phpCCSI kod sözcüğü 920 ve bağlantı bayrağı etkileşimi kapsanır
GS1 Composite — CC-APartialpro/tests/Unit/Barcode/Gs1Composite/CompositeComponentACodewordTest.php; pro/tests/Conformance/Barcode/Gs1Composite/CompositeComponentATest.phpKod sözcüğü üretimi Verified (taban-928, gidiş-dönüş öz-denetimi); tam sembol oluşturma desteklenmez — encode() kapalı arızalar
GS1 Composite — CC-BNot supportedpro/tests/Conformance/Barcode/Gs1Composite/CompositeComponentBTest.php (kapalı-arızalama reddini öne sürer)2D kodlama yok; bağlantı yardımcısı (CCSI 901) kullanılabilir kalır
GS1 AI ayrıştırıcısıVerifiedpro/tests/Unit/Barcode/Gs1DataParserTest.php; Gs1DataParserFnc1Test.phpHer iki girdi biçimi ve üç taşıyıcı bayt-dizisi çıktısının tümü çalıştırılır
GS1 tedarik zinciri doğrulayıcısıVerifiedpro/tests/Unit/Barcode/Gs1ValidatorTest.php; Gs1ValidatorCrossAiTest.php; pro/tests/Unit/Barcode/Gs1/Gs1ValidatorDateValidationEdgeCaseTest.phpKontrol basamakları, çapraz-AI zorunlu birleşimleri ve tarih mantığı çalıştırılır
  • Bu sayfadaki kanıt çapaları, pro/tests/** altındaki test yollarıdır; depo, bu modül için hiçbir examples/ dizini sunmaz.
  • Kullanılabilirlik ve lisanslama altında listelenen yedi yetenek adı, hizmet sağlayıcının bağladığı anahtarlardır. IMB kodlayıcısı doğrudan oluşturulur ve hiçbir kayıt defteri anahtarı taşımaz.
  • CC-A yalnızca genel amaçlı kodlama yöntemini yayar; uygulamaya özgü sıkıştırılmış yöntemler, bir doğruluk boşluğu değil, belgelenmiş bir yoğunluk kalıntısıdır.

Bu sayfa yalnızca dışarıdan gözlemlenebilir davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, çalıştırma kılavuzu dosya adları ve bilet önekleri kapsam dışıdır.