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