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
| Page | Die einsbasierte Zielseite |
|---|---|
| ResultJSON | Das von ApplyOCRTextLayer beschriebene Schema in Version 1, optional mit verifizierten Grundlinienendpunkten und Hierarchie-IDs |
| FontName | Eine einbettbare TrueType-Schriftart oder eine leere Zeichenfolge zur Auswahl einer installierten Ausweichschrift |
| MinConfidence | Der inklusive Wortkonfidenz-Schwellenwert von 0 bis 1 |
| Options | Eine bitweise Kombination der folgenden Ebenenrichtlinien; null fügt eine neue bibliothekseigene Ebene hinzu |
Optionen
| 1 — PDF_OCR_SKIP_EXISTING_TEXT | Liefert 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_LAYER | Ersetzt 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
| 1 | Eine Ebene wurde festgeschrieben, die Richtlinie für vorhandenen Text hat die Seite übersprungen, oder kein Wort erreichte den Konfidenzschwellenwert |
|---|---|
| 0 | Eingabe, 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