ApplyOCRTextLayerEx

OCR, Text, Dokumentbearbeitung

Beschreibung

Prüft anbieterneutrales OCR-JSON, bereitet unsichtbaren Text in einem separaten Puffer vor und schreibt eine bibliothekseigene durchsuchbare Textebene auf einer Seite fest

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

Parameter

PageDie einsbasierte Zielseite
ResultJSONDas von ApplyOCRTextLayer beschriebene Schema in Version 1, optional mit verifizierten Grundlinienendpunkten und Hierarchie-IDs
FontNameEine einbettbare TrueType-Schriftart oder eine leere Zeichenfolge zur Auswahl einer installierten Ausweichschrift
MinConfidenceDer inklusive Wortkonfidenz-Schwellenwert von 0 bis 1
OptionsEine bitweise Kombination der folgenden Ebenenrichtlinien; null fügt eine neue bibliothekseigene Ebene hinzu

Optionen

1 — PDF_OCR_SKIP_EXISTING_TEXTLiefert Erfolg, ohne OCR anzuwenden, wenn ein verbleibender, nicht bibliothekseigener Inhaltsstrom oder ein aufgerufenes Form XObject Text enthält, auch unsichtbaren Text
2 — PDF_OCR_REPLACE_OWNED_LAYERErsetzt jede vorhandene Ebene durch die exakte OCR-Markierung der Bibliothek; hängt an, wenn keine bibliothekseigene OCR-Ebene existiert
3Überspringt Seiten mit nicht bibliothekseigenem Text und erlaubt dabei, nur bibliothekseigene OCR-Seiten zu ersetzen

Rückgabewerte

1Eine Ebene wurde festgeschrieben, die Richtlinie für vorhandenen Text hat die Seite übersprungen, oder kein Wort erreichte den Konfidenzschwellenwert
0Eingabe, Geometrie, Optionen, Schriftkodierung oder das Schreiben der Ebene ist fehlgeschlagen

Anmerkungen

Unbekannte Optionsbits werden abgelehnt

Quellkoordinaten verwenden den Ursprung oben links des gerenderten Bildes und die gewählte Renderbox; Seitenrotation und ungleich nuller Box-Versatz werden zurück in den rohen PDF-Benutzerraum abgebildet

Ein optionales baseline-Array enthält [x1, y1, x2, y2] in Quelleinheiten und definiert Textrichtung und Vorschub; eine vollständige Grundlinie darf nicht zusätzlich einen ungleich nullen textAngle tragen

Jede Wortgrenze und Grundlinie wird vor der Konfidenzfilterung geprüft; ein ungültiges Wort mit niedriger Konfidenz lässt den Vorgang dennoch fehlschlagen

Schriftanpassung und Behandlung fehlender Glyphen werden abgeschlossen, bevor die neue Inhaltsebene festgeschrieben wird; keine teilweise gezeichneten OCR-Wörter ersetzen die alte Ebene

Nur Ströme mit allen drei exakten Feldern /PDFlibOCROwner /PDFlibPas, /PDFlibOCRType /InvisibleText und /PDFlibOCRVersion 1 sind bibliothekseigene OCR-Ebenen

Der Ersatz erzeugt ein neues contents-Array und einen neuen Strom und bewahrt nicht bibliothekseigenen Inhalt sowie die von Nachbarseiten verwendeten Ströme

Die OCR-Ebene verwendet den Renderingmodus 3 und einen isolierten Grafikzustand; die Platzierung hebt die aktuelle Transformationsmatrix des verbleibenden Inhalts auf, bevor die Wortmatrix angewendet wird

Ein leeres akzeptiertes Ergebnis lässt alte Ebenen unverändert; verwenden Sie GetOCRDiagnosticsJSON, um empty, skipped, appended und replaced zu unterscheiden

Durchsuchbarkeit und unveränderte sichtbare Pixel werden nach dem Speichern und erneuten Laden des Dokuments verifiziert

Siehe auch

OCRPageEx, OCRDocumentEx, ConfigureTesseractOCR, GetOCRDiagnosticsJSON, LastOCRError