ApplyOCRTextLayerEx

OCR, text, dokumentredigering

Beskrivning

Validerar providerneutral OCR-JSON, förbereder osynlig text i en separat buffert och skriver ett ägt sökbart textlager till en sida

Syntax

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

Parametrar

PageMålsidans 1-baserade nummer
ResultJSONVersion 1-schemat som beskrivs av ApplyOCRTextLayer, valfritt med verifierade baslinjeslutpunkter och hierarki-ID:n
FontNameEtt inbäddningsbart TrueType-teckensnitt eller en tom sträng för val av installerad fallback
MinConfidenceDet inkluderande ordkonfidensvärdet från 0 till 1
OptionsEn bitvis kombination av lagerpolicyerna nedan; noll lägger till ett nytt ägt lager

Options

1 — PDF_OCR_SKIP_EXISTING_TEXTReturnerar lyckat utan att tillämpa OCR när en kvarhållen, icke-ägd innehållsström eller ett anropat Form XObject innehåller text, inklusive osynlig text
2 — PDF_OCR_REPLACE_OWNED_LAYERErsätter varje befintligt lager som bär bibliotekets exakta OCR-markör; lägger till om inget ägt OCR-lager finns
3Hoppar över sidor med icke-ägd text, medan sidor med bara ägd OCR får ersättas

Returvärden

1Ett lager skrevs, policyn för befintlig text hoppade över sidan eller så uppfyllde inget ord konfidensvärdet
0Indata, geometri, options, teckensnittskodning eller lagerskrivning misslyckades

Anmärkningar

Okända optionbitar avvisas

Källkoordinater använder den renderade bildens ursprung uppe till vänster och den valda renderingsrutan; sidrotation och skrivna rutoffseter mappas tillbaka till rått PDF-användarrymd

En valfri baseline-array innehåller [x1, y1, x2, y2] i källenheter och definierar textriktning och framåtskridande; en komplett baslinje får inte också bära en textAngle skild från noll

Varje ordgräns och baslinje kontrolleras före konfidensfiltrering; ett ogiltigt ord med låg konfidens får ändå operationen att misslyckas

Teckensnittsanpassning och hantering av saknade glyfer avslutas innan det nya innehållslagret skrivs; inga delvis ritade OCR-ord ersätter det gamla lagret

Bara strömmar med alla tre exakta fälten /PDFlibOCROwner /PDFlibPas, /PDFlibOCRType /InvisibleText och /PDFlibOCRVersion 1 är ägda OCR-lager

Ersättning skapar en ny contents-array och en ny ström och bevarar icke-ägt innehåll och de strömmar som sidosidorna använder

OCR-lagret använder renderingsläge 3 och ett isolerat grafiktillstånd; placeringen annullerar det kvarhållna innehållets aktuella transformationsmatris innan ordmatrisen tillämpas

Ett tomt godkänt resultat lämnar gamla lager orörda; använd GetOCRDiagnosticsJSON för att skilja empty, skipped, appended och replaced

Sökbarhet och oförändrade synliga pixlar verifieras efter att dokumentet sparats och lästs in igen

Se även

OCRPageEx, OCRDocumentEx, ConfigureTesseractOCR, GetOCRDiagnosticsJSON, LastOCRError