.Convertor
Menu

Napraw zniekształcony tekst PDF: objaśnienie mapowania czcionek i ToUnicode

Loger

Loger

Oct 16, 2026 · 4 min read

Napraw zniekształcony tekst PDF: objaśnienie mapowania czcionek i ToUnicode

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.

Kod źródłowy PDF podąża oddzielnymi ścieżkami do widocznego glifu i wyodrębnionego tekstu Unicode; nieprawidłowe mapowanie ToUnicode może spowodować, że wyniki nie będą się zgadzać

Co właściwie oznacza mapowanie czcionek?

Te trzy pojęcia są ze sobą powiązane, ale nie są zamienne:

MapowanieGłówna rola
Tabela cmap w pliku czcionkiMapuje kody znaków na indeksy glifów; Podtabele Unicode korzystają z kodów Unicode
Kodowanie PDF; czcionki złożone mogą używać Encoding CMapInterpretuje kody znaków źródłowych PDF i pomaga zlokalizować glif do narysowania
PDF ToUnicodeMapuje 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ą:

ObjawCo sprawdzić w pierwszej kolejności
Strona wygląda poprawnie, ale skopiowane znaki konsekwentnie zamieniają się w inne znakiBrakujące lub nieprawidłowe mapowania znaków
Możesz wybrać tylko obraz, a nie tekstBrakują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 obrazuRozpoznanie skutkuje warstwą tekstową OCR
Poszczególne znaki są poprawne, ale kolumny lub tabele są niewłaściwaEkstrakcja kolejności czytania i układu
Sama strona zawiera brakujące znaki lub polaZasoby 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:

  1. Wybierz PDF, a następnie wybierz czcionkę do poprawienia.
  2. Porównaj oryginalne glify w siatce i wprowadź poprawny tekst pod każdym glifem.
  3. 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.

Temat

PDF

PDF

Opublikowane artykuły15

Polecana lektura