Jeśli PDF wygląda poprawnie, ale wklejenie do edytora zwykłego tekstu powoduje wyświetlenie różnych znaków, sprawdź przyczynę przed zmianą czcionek lub uruchomieniem OCR. Odwzorowanie pomiędzy kształtem narysowanym na stronie a reprezentowanym przez niego znakiem może być nieprawidłowe. Korygowanie błędów tekstowych PDF rozpoczyna się od zidentyfikowania, która część procesu zakończyła się niepowodzeniem.
Dlaczego tekst może wyglądać dobrze, ale jest kopiowany niepoprawnie?
Treść tekstowa PDF może przechowywać kody znaków źródłowych specyficzne dla czcionki, a nie tekst Unicode. Czytnik PDF wykorzystuje informacje o czcionce i kodowaniu do zlokalizowania i narysowania glifu. Kopiowanie wymaga również przetłumaczenia tych kodów na znaczące znaki.
Dlatego narysowanie litery A nie gwarantuje, że ekstrakcja zwróci A. ToUnicode to mapowanie w słowniku czcionek, które kojarzy kody znaków źródłowych PDF z sekwencjami znaków Unicode. To rozróżnienie między wyświetlaniem a wyodrębnianiem tekstu opisano w Dokumentacja Adobe PDF, sekcja 5.9.

Co właściwie oznacza mapowanie czcionek?
Te trzy pojęcia są ze sobą powiązane, ale nie są zamienne:
| Mapowanie | Główna rola |
|---|---|
Tabela cmap w pliku czcionki | Mapuje kody znaków na indeksy glifów; Podtabele Unicode korzystają z kodów Unicode |
| Kodowanie PDF; czcionki złożone mogą używać Encoding CMap | Interpretuje kody znaków źródłowych PDF i pomaga zlokalizować glif do narysowania |
PDF ToUnicode | Mapuje kody znaków źródłowych PDF na tekst Unicode w celu kopiowania i wyodrębniania |
Dla pierwszego rodzaju, zobacz Specyfikacja OpenType cmap. Omawiana tutaj naprawa dotyczy trzeciego; nie odbudowuje pliku czcionki ani nie zastępuje glifów na stronie.
Brakujące mapowanie ToUnicode nie zawsze powoduje zniekształcenie tekstu. Czytnik PDF może czasami odzyskać tekst ze standardowego kodowania, znanych nazw glifów lub kolekcji znaków. I odwrotnie, tabela mapowania może istnieć i nadal zawierać nieprawidłowe skojarzenia.
Najpierw sprawdź, czy problemem jest mapowanie
Skopiuj krótki fragment do edytora zwykłego tekstu i porównaj go z oryginalną stroną:
| Objaw | Co sprawdzić w pierwszej kolejności |
|---|---|
| Strona wygląda poprawnie, ale skopiowane znaki konsekwentnie zamieniają się w inne znaki | Brakujące lub nieprawidłowe mapowania znaków |
| Możesz wybrać tylko obraz, a nie tekst | Brakująca warstwa tekstowa lub tekst przekonwertowany na kontury; rozważ plik źródłowy lub OCR |
| Na zeskanowanej stronie można zaznaczyć tekst, ale nie pasuje on do obrazu | Rozpoznanie skutkuje warstwą tekstową OCR |
| Poszczególne znaki są poprawne, ale kolumny lub tabele są niewłaściwa | Ekstrakcja kolejności czytania i układu |
| Sama strona zawiera brakujące znaki lub pola | Zasoby czcionek, pokrycie glifów lub kodowanie wyświetlania |
Są to wskazówki dotyczące rozwiązywania problemów, a nie diagnozy oparte wyłącznie na wyglądzie. Osadzanie czcionek i prawidłowe kopiowanie to także odrębne kwestie; patrz Osadzanie i podzbiory czcionek PDF.
Jak poprawić skopiowany tekst, używając oryginalnych glifów?
Załóżmy, że kod źródłowy <0001> w określonej czcionce rysuje A, ale błędnie odwzorowuje na 错 (U+9519). To jest ilustracyjny fragment mapowania, a nie kompletny plik CMap:
Before: <0001> <9519>
After: <0001> <0041>
<0001> jest kodem źródłowym PDF zapisanym tą czcionką, a nie znakiem Unicode U+0001. Mapowanie go na U+0041 określa, że glif reprezentuje A. ligature (kilka liter dzielących jeden glif) może również wymagać mapowania na kilka znaków Unicode, takich jak fi.
Po potwierdzeniu, że naprawa mapowania jest właściwa, użyj Narzędzie do naprawy tekstu PDF:
- Wybierz PDF, a następnie wybierz czcionkę do poprawienia.
- Porównaj oryginalne glify w siatce i wprowadź poprawny tekst pod każdym glifem.
- Wyeksportuj naprawiony PDF i zachowaj oryginał do porównania.
Zmiana obowiązuje wszędzie tam, gdzie używana jest ta sama czcionka i kod źródłowy. Sprawdzaj osobno różne czcionki, nawet jeśli ich nazwy są zgodne. Jeśli OCR błędnie rozpoznał choć jedno słowo, globalne ponowne mapowanie znaku może również uszkodzić tekst, który był już poprawny.
Jak zweryfikować naprawę?
Otwórz ponownie wyeksportowany plik, skopiuj i wyszukaj przykładowy tekst w docelowym czytniku PDF. Sprawdź inne wystąpienia tego samego kodu i czcionek, których nie edytowałeś. Porównaj wygląd strony i sprawdź interpunkcję, ligatury i cyfry, zamiast testować tylko pierwszy błędny znak.
Niektóre pliki PDF używają również ActualText do dostarczania tekstu zastępczego, który może być preferowany przez oprogramowanie obsługujące. Jeśli zmiana ToUnicode nie rozwiąże problemu, sprawdź, czy nie ma tego zastąpienia. Bieżące narzędzie ostrzega o ActualText, ale go nie edytuje. Zobacz PDF Wyjaśnienie powiązania.
W przypadku błędów OCR popraw lub rozpoznaj ponownie warstwę tekstową. Jeśli posiadasz oryginalny plik układu, rozważ jego poprawienie i wyeksportowanie nowego pliku PDF. Pliki, które się nie otwierają lub powodują błędy strukturalne, wymagają innego podejścia; patrz gdy odpowiednia jest naprawa formatu PDF.
Po zidentyfikowaniu problemu z mapowaniem znaków czcionki rozwiąż go za pomocą lokalne narzędzie do naprawy tekstu PDF. Pliki są przetwarzane w Twojej przeglądarce bez ich przesyłania. Po wyeksportowaniu nadal powinieneś sprawdzić skopiowany tekst i wygląd strony.


