PDFium Delphi Component Docs

İsteğe bağlı ZXing barkod sağlayıcısı

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);

Public declarations

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;