Kopiujesz tekst z pliku PDF i wklejasz go gdzie indziej — a wynik wygląda źle. Znaki są niewłaściwie ustawione, ligatury takie jak „fi” stać się „fi” lub znikają, słowa łączą się bez spacji, a znaki specjalne zamieniają się w znaki zapytania. Jest to problem z kodowaniem tekstu PDF i ma konkretne przyczyny, które wyjaśniają, dlaczego tak się dzieje i co można z tym zrobić.

Jak PDF przechowuje tekst — i dlaczego działa nieprawidłowo
PDF został zaprojektowany przede wszystkim jako format wizualny — opisuje dokładnie wygląd strony, a nie znaczenie tekstu. Wewnętrzne kodowanie tekstu w pliku PDF może znacznie różnić się od standardowego Unicode. Niektóre pliki PDF korzystają z niestandardowych mapowań glifów, w których kody znaków przechowywane wewnętrznie nie odpowiadają standardowym kodom liter — więc podczas kopiowania schowek otrzymuje kody wewnętrzne, a nie znaki, które widzisz.
Dobrze skonstruowany plik PDF zawiera tabelę mapowania ToUnicode, która informuje widza, jak tłumaczyć kody wewnętrzne na standardowe znaki Unicode. Jeśli tej tabeli brakuje, jest ona niekompletna lub niepoprawna, metoda kopiowania i wklejania powoduje zniekształcenia wyników, mimo że tekst jest wyświetlany na ekranie idealnie. Wyświetlacz i tekst, który można skopiować, pochodzą z różnych systemów — wyświetlanie wykorzystuje glif wizualny, kopiowanie i wklejanie wykorzystuje dane tekstowe.
Wypróbuj PDF OCR
Nie wymaga instalacji. Działa bezpośrednio w Twojej przeglądarce.
Ligatury i znaki specjalne
Ligatury to kombinacje typograficzne — „fi”, „fl”, „ff”, „ffi”; — gdzie dwa lub trzy znaki są połączone w jeden glif ze względów estetycznych. W słabo zakodowanym pliku PDF glif ligatury nie ma mapowania ToUnicode dla poszczególnych znaków, które reprezentuje. Po skopiowaniu ligatura staje się pojedynczym znakiem specjalnym (fi zamiast fi), staje się niczym lub staje się symbolem zastępczym.
Dlatego właśnie kopiowanie z niektórych profesjonalnie złożonych plików PDF powoduje powstanie tekstu z brakującymi literami — takimi jak słowa „biuro”; stać się „biurem” ponieważ „ffi” ligatura nie miała użytecznego mapowania Unicode. Słowo wyglądało poprawnie na ekranie; podstawowe dane tekstowe zostały uszkodzone.
Brakujące spacje między wyrazami
Niektóre pliki PDF reprezentują spacje nie jako rzeczywiste znaki spacji w strumieniu tekstu, ale jako przesunięcia pozycyjne — przeglądarka renderuje przerwę między słowami poprzez przesuwanie pozycji kursora, a nie przez wstawianie znaku spacji. Podczas kopiowania przesunięcie pozycyjne nie jest tłumaczone na znak spacji, dlatego słowa występują razem: „słowo”; zamiast „słowa”.
Jest to powszechne w plikach PDF eksportowanych z aplikacji projektowych, takich jak InDesign lub Illustrator, gdy odstępy między tekstami są kontrolowane na poziomie projektu, a nie poprzez standardowe kodowanie tekstu.
Problemy z kolumnami i kolejnością odczytu
W wielokolumnowym pliku PDF kolejność czytania wizualnego (pierwsza kolumna w dół, potem druga w dół) może nie odpowiadać kolejności tekstu wewnętrznego (od lewej do prawej na całej szerokości strony). Kopiowanie tekstu z układu dwukolumnowego często powoduje powstanie tekstu naprzemiennego w kolumnach wiersz po wierszu, co sprawia wrażenie pomieszanego, mimo że każde pojedyncze słowo jest poprawne.
To nie jest problem z kodowaniem — to problem z kolejnością odczytu. Tekst jest poprawnie zakodowany; jest po prostu przechowywany w kolejności niezgodnej z tym, jak odczytałby go człowiek. Rozwiązanie polega na kopiowaniu tekstu z jednej kolumny na raz zamiast zaznaczania obu kolumn.
Co zrobić, gdy skopiowany tekst jest zniekształcony
- Wypróbuj inną przeglądarkę PDF: różne przeglądarki w różny sposób radzą sobie z mapowaniem ToUnicode. Jeśli podczas kopiowania w przeglądarce Chrome tekst jest zniekształcony, spróbuj skopiować tekst z programu Adobe Reader — często daje to czystsze rezultaty w przypadku tego samego pliku PDF.
- Najpierw przekonwertuj na Word: a PDF na Word Konwerter ponownie przetwarza kodowanie tekstu podczas konwersji. Powstały dokument programu Word często daje czystą kopię i wklejenie, nawet jeśli oryginalny PDF tego nie zrobił.
- Uruchom OCR na kopii: Narzędzia OCR ponownie odczytują widoczny tekst z obrazów stron i tworzą nowy, poprawnie zakodowany tekst. Wynik OCR PDF może dać lepszą jakość kopiowania i wklejania niż oryginalne kodowanie, szczególnie w przypadku słabo zakodowanego profesjonalnego składu.
- Użyj Znajdź & Zastąp typowe błędy: jeśli ta sama ligatura lub znak jest stale wklejana niepoprawnie, wklej wklejony wynik do programu Word i użyj funkcji Znajdź & Zamień, aby naprawić powtarzający się błąd.
Zapobieganie problemowi u źródła
Jeśli tworzysz pliki PDF i chcesz zapewnić odbiorcom proste kopiowanie i wklejanie, użyj aplikacji, które generują poprawne odwzorowania ToUnicode. Domyślnie eksport Microsoft Word jest wykonywany z odpowiednim mapowaniem Unicode. Program Adobe InDesign może eksportować z odpowiednim kodowaniem tekstu lub bez niego, w zależności od ustawień — w oknie dialogowym Eksportuj PDF zaznacz opcję „Użyj struktury dokumentu do określenia kolejności tabulacji”; i opcje dostępności tekstu są włączone. Przetestuj kopiowanie i wklejanie z wyeksportowanego pliku PDF przed dystrybucją, aby wychwycić problemy z kodowaniem, zanim dotrą one do odbiorców.
Wypróbuj PDF OCR
Nie wymaga instalacji. Działa bezpośrednio w Twojej przeglądarce.
