Zniekształcony tekst w przeszukiwalnych PDF-ach dla skryptów niełacińskich
Przeprowadź OCR dokumentu przy użyciu IronOCR, zapisz go jako przeszukiwalny PDF, a rozpoznany tekst może wyglądać poprawnie na ekranie, ale zmienić się w nonsens, gdy go skopiujesz lub wyodrębnisz. Dzieje się tak, gdy font PDF-a nie ma glifów dla skryptu, który rozpoznałeś, i jest to częste przy skryptach niełacińskich i złożonych. Rozwiązaniem jest zapisanie PDF-a czcionką obsługującą twój skrypt; przykład poniżej używa języka Gudżarati.
Rozpoznany tekst nie ma pasujących znaków do przypisania, więc skopiowany tekst wychodzi zniekształcony, mimo że OCR prawidłowo odczytał stronę. Font zawierający tylko znaki łacińskie nie rozwiąże tego: dostarczona przez ciebie czcionka musi obejmować rzeczywiście rozpoznany skrypt.
Wymagania wstępne
- IronOCR z pakietem językowym dla twojego skryptu. Ten przykład używa
OcrLanguage.GujaratiBest. - Czcionka TrueType, która obsługuje twój docelowy skrypt. Ten przykład używa AnekGujarati, dostępnej bezpłatnie w Google Fonts.
- Pełna ścieżka do tego fonta.
Rozwiązanie
1. Umieść font obsługujący twój skrypt
Znajdź font, który zawiera glify dla twojego docelowego skryptu, umieść go na maszynie i zanotuj jego pełną ścieżkę. Dla przykładu Gudżarati:
C:\Path\To\AnekGujarati-VariableFont_wdth,wght.ttf
Nazwa pliku czcionki AnekGujarati zmiennej zawiera przecinek, więc skopiuj ją dokładnie. Ścieżka musi wskazywać na dokładny plik czcionki.
2. Przekaż czcionkę do SaveAsSearchablePdf
Podczas zapisywania przeszukiwalnego PDF, podaj ścieżkę do czcionki obsługującej twój skrypt jako CustomFontFile (3ci) argument. 4. argument to opcjonalna etykieta CustomFontName; jeśli pominiesz, IronOCR użyje własnej nazwy pliku czcionki:
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")
Argument, który naprawia zniekształcone wyodrębnianie, to plik czcionki (3ci parametr): musi on zawierać glify dla skryptu, który wy-OCR-owałeś. 4. parametr tylko nazywa osadzoną czcionkę i nie wpływa na mapowanie skryptów. Dla innego dokumentu, skieruj 3. parametr na czcionkę, która obsługuje ten skrypt.
3. Potwierdź wyodrębnianie tekstu
Otwórz wygenerowany PDF i skopiuj rozpoznany tekst, aby potwierdzić, że teraz jest poprawnie wyodrębniany. Jeżeli nadal wygląda na zniekształcony, prawie na pewno dostarczona czcionka nie ma glifów dla twojego skryptu; sprawdź ponownie, czy czcionka rzeczywiście go obejmuje.
Notatki
- Nie dotyczy wyłącznie Gudżarati: każdy skrypt niełaciński lub złożony może pokazać zniekształcony skopiowany tekst, gdy czcionka PDF nie obejmuje go, w tym Devanagari (hindi, marathi), arabski, tajski oraz teksty chińskie, japońskie lub koreańskie.
- Jedna czcionka na skrypt: dostarcz czcionkę, która zawiera rozpoznany skrypt. Rodzina Noto od Google jest szeroką opcją, z czcionkami per-skrypt, takimi jak Noto Sans Gujarati, Noto Sans Devanagari i Noto Sans Arabic.

