CreatePdfZXingBarcodeProvider, ZXing-C++ 2.3.0'dan derlenen hedefle eşleşen bir yerel köprüye giden açık bir mutlak yol kullanarak bir IPdfBarcodeProvider sağlar
TryCreatePdfZXingBarcodeProvider, eksik kitaplıkları, export'ları veya uyumsuz köprü ABI'sını işlem arama yolunu değiştirmeden bildirir
Üretim, Code128, QR, DataMatrix ve PDF417 destekler ve istenen modül boyutunda siyah vektör dikdörtgenleri döndürür; Code128 desteklediği karakter kümesini kabul ederken matris kodlar Unicode metni destekler
QuietZoneModules, siyah dikdörtgenleri solda ve üstte kaydırır; çağırıcılar, sonucu yerleştirirken veya rasterleştirirken sağda ve altta beyaz bir sessiz bölge de ayırmalıdır
Tanıma, yukarıdan aşağıya tek baytlı gri tonlamalı baytları, açık genişlik, yükseklik ve stride kabul eder; sınırlar yarı açık piksel dikdörtgenleridir ve 1 güven değeri istatistiksel bir olasılık değil kabul edilen bir kod çözmeyi gösterir
Varsayılan bütçeler 4.194.304 piksel, 32.768 UTF-8 metin baytı ve 1.000.000 vektör dikdörtgeni olup sessiz bölge 4 ve hata düzeltme düzeyi 2dir
QR hata düzeltme düzeyleri 0–2 L, 3–4 M, 5–6 Q ve 7–8 H seçer; PDF417 0–8 düzeylerini kullanır; Code128 ve DataMatrix bu seçeneği yok sayar
Tanıma, istenen üst sınır daha yüksek olsa bile en fazla 255 simge döndürür; mevcut sağlayıcı arayüzünde iptal belirteci yoktur
Derleme yönergeleri ve çalıştırılabilir kodlama/kod çözme örneği Native/BarcodeZXing ve Tests/BarcodeProvider içindedir; bu değişiklikle yerel köprü ikili dosyası veya bağımlılık kaynağı paketlenmez
Gerçek Delphi/FPC Win32/Win64 yürütmesi, döndürme, ters çevirme ve Unicode dahil 60 kodlama/kod çözme turunu geçer; yerel Linux köprü yürütmesi 15 turu geçerken Pascal sağlayıcısı, sarmalayıcının Windows bağımlılıklarına tabi olmaya devam eder
Provider := CreatePdfZXingBarcodeProvider( BridgePath, TPdfZXingBarcodeOptions.Default); Rects := GeneratePdfBarcode(pbkQr, 'Invoice 12345', 2, Provider); Results := RecognisePdfBarcodes(Pixels, Width, Height, Stride, Provider, 256);
type
EPdfBarcodeBackendError = class(EPdfProduction);
TPdfZXingBarcodeOptions = record
MaxPixels: Int64;
MaxTextBytes: Integer;
MaxRectangles: Integer;
QuietZoneModules: Integer;
ErrorCorrectionLevel: Integer;
class function Default: TPdfZXingBarcodeOptions; static;
end;
// Recognition accepts top-down, one-byte grayscale pixels with explicit stride
// Bounds are half-open pixel rectangles; Confidence=1 denotes a valid decode
// The backend does not supply a statistical confidence estimate
// A recognition call returns at most 255 symbols, even with a higher requested limit
function CreatePdfZXingBarcodeProvider(const BridgeLibraryPath: string;
const Options: TPdfZXingBarcodeOptions): IPdfBarcodeProvider;
function TryCreatePdfZXingBarcodeProvider(const BridgeLibraryPath: string;
const Options: TPdfZXingBarcodeOptions; out Provider: IPdfBarcodeProvider;
out ErrorMessage: string): Boolean;