PDFium Delphi Component Docs

Valfri ZXing-streckkodsleverantör

CreatePdfZXingBarcodeProvider tillhandahåller en IPdfBarcodeProvider via en explicit absolut sökväg till en målmatchad nativ brygga byggd från ZXing-C++ 2.3.0

TryCreatePdfZXingBarcodeProvider rapporterar saknade bibliotek, exporter eller inkompatibel brygga-ABI utan att ändra processens sökvägar

Generering stödjer Code128, QR, DataMatrix och PDF417 och returnerar svarta vektorrektanglar i begärd modulstorlek; Code128 accepterar sitt stödda teckenuppsättning medan matriskoder stödjer Unicode-text

QuietZoneModules förskjuter svarta rektanglar åt vänster och upp; anropare måste också reservera en vit tyst zon åt höger och ned när resultatet placeras eller rastreras

Igenkänning accepterar uppifrån-ned ett-byte gråskalebyte med explicit bredd, höjd och stride; gränser är halvöppna pixelrektanglar och konfidens 1 betyder en godkänd avkodning, inte en statistisk sannolikhet

Standardbudgetarna är 4,194,304 pixlar, 32,768 UTF-8-textbyte och 1,000,000 vektorrektanglar, med tyst zon 4 och felkorrigeringsnivå 2

QR-felkorrigeringsnivåerna 0–2 väljer L, 3–4 M, 5–6 Q och 7–8 H; PDF417 använder nivåerna 0–8; Code128 och DataMatrix ignorerar detta alternativ

Igenkänningen returnerar högst 255 symboler även när begärd maxgräns är högre; det befintliga leverantörsgränssnittet har ingen avbrytningstoken

Bygginstruktioner och det körbara kodnings-/avkodningsexemplet finns i Native/BarcodeZXing och Tests/BarcodeProvider; ingen nativ bryggabinärfil eller beroendekälla följer med denna ändring

Verklig Delphi/FPC Win32/Win64-körning klarar 60 kod/avkodning-rundor, inklusive rotation, inversion och Unicode; nativ Linux-bryggkörning klarar 15 rundor, medan Pascal-leverantören fortfarande är underlagd wrapperens Windows-beroenden

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;