Verzerrter Text in durchsuchbaren PDFs für nicht-lateinische Schriften
OCRen Sie ein Dokument mit IronOCR, speichern Sie es als durchsuchbares PDF, und der erkannte Text kann auf dem Bildschirm korrekt aussehen, aber unverständlich werden, wenn Sie ihn kopieren oder extrahieren. Dies passiert, wenn die Schriftart des PDFs keine Glyphen für die Schrift hat, die Sie erkannt haben, und es ist häufig bei nicht-lateinischen und komplexen Schriften. Die Lösung ist, das PDF mit einer Schriftart zu speichern, die Ihre Schrift unterstützt; das folgende Beispiel verwendet Gujarati.
Der erkannte Text hat keine passenden Zeichen zum Zuordnen, daher erscheint kopierter Text verzerrt, obwohl OCR die Seite korrekt gelesen hat. Eine nur lateinische Schriftart wird dies nicht lösen: Die Schriftart, die Sie bereitstellen, muss die Schrift abdecken, die Sie tatsächlich erkannt haben.
Voraussetzungen
- IronOCR mit dem Sprachpaket für Ihre Schrift. Dieses Beispiel verwendet
OcrLanguage.GujaratiBest. - Eine TrueType-Schriftart, die Ihre Zielschrift unterstützt. Dieses Beispiel verwendet AnekGujarati, frei verfügbar von Google Fonts.
- Der vollständige Dateipfad zu dieser Schriftart.
Lösung
1. Platzieren Sie eine Schriftart, die Ihre Schrift abdeckt
Finden Sie eine Schriftart, die Glyphen für Ihre Zielschrift enthält, platzieren Sie sie auf dem Gerät und notieren Sie den vollständigen Pfad. Für das Gujarati-Beispiel:
C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf
Der AnekGujarati variable-font Dateiname enthält ein Komma, daher kopieren Sie ihn genau. Der Pfad muss auf die exakte Schriftartdatei verweisen.
2. Übergeben Sie die Schriftart an SaveAsSearchablePdf
Beim Speichern des durchsuchbaren PDFs geben Sie den Pfad zur Ihrer skriptfähigen Schriftart als CustomFontFile (3. Argument) an. Das 4. Argument ist ein optionales CustomFontName Etikett; wenn Sie es weglassen, verwendet IronOCR den eigenen Namen der Schriftdatei:
ocrResult.SaveAsSearchablePdf(
strOutputFile,
false,
@"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf",
"AnekGujarati");
ocrResult.SaveAsSearchablePdf(
strOutputFile,
false,
@"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf",
"AnekGujarati");
ocrResult.SaveAsSearchablePdf( _
strOutputFile, _
False, _
"C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf", _
"AnekGujarati")
Das Argument, das die verzerrte Extraktion behebt, ist die Schriftdatei (3. Parameter): sie muss Glyphen für die Schrift enthalten, die Sie OCRen. Der 4. Parameter benennt nur die eingebettete Schriftart und beeinflusst die Skriptzuordnung nicht. Für ein anderes Dokument verweisen Sie den 3. Parameter auf eine Schrift, die diese Schrift unterstützt.
3. Bestätigen Sie die Textextraktionen
Öffnen Sie das generierte PDF und kopieren Sie den erkannten Text, um zu überprüfen, ob er jetzt korrekt extrahiert wird. Wenn er immer noch verzerrt erscheint, fehlen der bereitgestellten Schriftart höchstwahrscheinlich Glyphen für Ihre Schrift; überprüfen Sie erneut, ob die Schriftart sie wirklich abdeckt.
Anmerkungen
- Nicht spezifisch für Gujarati: Jede nicht-lateinische oder komplexe Schrift kann verzerrten kopierten Text anzeigen, wenn die PDF-Schriftart sie nicht abdeckt, einschließlich Devanagari (Hindi, Marathi), Arabisch, Thai und Chinesisch, Japanisch oder Koreanisch.
- Eine Schriftart pro Schrift: Stellen Sie eine Schriftart bereit, die die erkannte Schrift enthält. Die Noto-Familie von Google ist eine breite Option, mit schrifteinheitlichen Schriften wie Noto Sans Gujarati, Noto Sans Devanagari und Noto Sans Arabisch.

