ApplyOCRTextLayerEx

OCR, tekst, documentbewerking

Beschrijving

Valideert providerneutrale OCR-JSON, bereidt onzichtbare tekst in een aparte buffer voor en schrijft een doorzoekbare tekstlaag in bibliotheekbezit naar één pagina weg

Syntaxis

Delphi

Function TPDFlib.ApplyOCRTextLayerEx(Page: Integer; Const ResultJSON,
  FontName: WideString; MinConfidence: Double; Options: Integer): Integer;

ActiveX

Function PDFlib::ApplyOCRTextLayerEx(Page As Long, ResultJSON As String,
  FontName As String, MinConfidence As Double, Options As Long) As Long

DLL

int DLApplyOCRTextLayerEx(int InstanceID, int Page, const wchar_t* ResultJSON,
  const wchar_t* FontName, double MinConfidence, int Options);
int DLApplyOCRTextLayerExA(int InstanceID, int Page, const char* ResultJSON,
  const char* FontName, double MinConfidence, int Options);

Parameters

PageDe doelpagina, beginnend bij 1
ResultJSONHet schema in versie 1 zoals beschreven bij ApplyOCRTextLayer, optioneel met geverifieerde baseline-eindpunten en hiërarchie-ID's
FontNameEen insluitbaar TrueType-lettertype of een lege string voor het kiezen van een geïnstalleerd alternatief
MinConfidenceDe inclusieve betrouwbaarheidsdrempel per woord van 0 tot en met 1
OptionsEen bitsgewijze combinatie van de hieronder staande laagbeleidsregels; nul voegt een nieuwe laag in bibliotheekbezit toe

Opties

1 — PDF_OCR_SKIP_EXISTING_TEXTGeeft succes terug zonder OCR toe te passen wanneer een behouden contentstream of aangeroepen Form XObject buiten bibliotheekbezit tekst bevat, inclusief onzichtbare tekst
2 — PDF_OCR_REPLACE_OWNED_LAYERVervangt elke bestaande laag met de exacte OCR-marker van de bibliotheek; voegt toe wanneer er geen OCR-laag in bibliotheekbezit bestaat
3Slaat pagina's met tekst buiten bibliotheekbezit over, terwijl pagina's met uitsluitend OCR-lagen in bibliotheekbezit vervangen mogen worden

Retourwaarden

1Er is een laag weggeschreven, het bestaande-tekstbeleid heeft de pagina overgeslagen, of geen enkel woord haalde de betrouwbaarheidsdrempel
0Invoer, geometrie, opties, lettertypecodering of het wegschrijven van de laag mislukte

Opmerkingen

Onbekende optiebits worden geweigerd

Broncoördinaten gebruiken de linkerbovenhoek van de gerenderde afbeelding als oorsprong en de geselecteerde renderbox; paginarotatie en niet-nul box-offsets worden teruggemapt naar de ruwe PDF-gebruikersruimte

Een optionele baseline-array bevat [x1, y1, x2, y2] in broneenheden en definieert de textrichting en de opschuiving; een volledige baseline mag niet ook nog een niet-nul textAngle meedragen

Elke woordgrens en baseline wordt gecontroleerd vóór de betrouwbaarheidsfiltering; een ongeldig woord met lage betrouwbaarheid laat de bewerking nog steeds mislukken

Lettertypepassing en de afhandeling van ontbrekende glyphs ronden af voordat de nieuwe contentlaag wordt weggeschreven; de oude laag wordt nooit vervangen door half getekende OCR-woorden

Alleen streams met alle drie de exacte velden /PDFlibOCROwner /PDFlibPas, /PDFlibOCRType /InvisibleText en /PDFlibOCRVersion 1 zijn OCR-lagen in bibliotheekbezit

Vervanging maakt een nieuwe contents-array en een nieuwe stream aan en behoudt daarbij content buiten bibliotheekbezit en de streams die zusterpagina's gebruiken

De OCR-laag gebruikt rendermodus 3 en een geïsoleerde graphics state; de plaatsing maakt de huidige transformatiematrix van de behouden content ongedaan voordat de woordmatrix wordt toegepast

Een leeg, geaccepteerd resultaat laat oude lagen onaangetast; gebruik GetOCRDiagnosticsJSON om empty, skipped, appended en replaced te onderscheiden

Doorzoekbaarheid en onveranderde zichtbare pixels worden geverifieerd na het opslaan en opnieuw laden van het document

Zie ook

OCRPageEx, OCRDocumentEx, ConfigureTesseractOCR, GetOCRDiagnosticsJSON, LastOCRError