Jak utworzyć plik PDF ze zeskanowanymi stronami, ale tekstem do wyboru?


32

Dzisiaj otrzymałem plik PDF od naszego dostawcy, który zawierał kilka wydrukowanych i zeskanowanych stron z podpisami itp. Otworzyłem go w programie Acrobat Reader DC. Ku mojemu zdziwieniu tekst z wyraźnie zeskanowanych obrazów mógł zostać wybrany i skopiowany jako tekst. Zobacz zrzut ekranu:

PDF skanowany z zaznaczanym tekstem

Najwyraźniej kryje się za tym OCR, ponieważ kopiowany tekst zawiera błędy. Ale jak to możliwe? Nigdy wcześniej tego nie widziałem, jak można to stworzyć?


4
Pakiety takie jak github.com/gkovacs/pdfocr pozwalają na to w przypadku już istniejącego obrazu PDFS
exussum

Czym różni się to od wyników uzyskiwanych przez Batch-OCR w wielu plikach PDF ?
Dmitrij Grigoryev,

@DmitryGrigoryev Nigdy wcześniej nie widziałem tego typu plików PDF, więc zapytałem, co to jest. W odpowiedziach nie ma nic w oprogramowaniu drukarki OCR lub OCRMyPDF, zarówno pytanie, jak i odpowiedzi są bardzo różne. Nie widzę nic zduplikowanego poza tym, że oba pytania dotyczą OCR i plików PDF.
Vojtěch Dohnal

Cóż, nigdy nie widziałem OCR PDF, który różni się od tego, co opublikowałeś, dlatego twoje pytanie wydaje mi się dziwne.
Dmitrij Grigoryev,

Odpowiedzi:


53

Nie ma to (w przeciwieństwie do niektórych innych odpowiedzi tutaj) najprawdopodobniej żadnego związku z programem Acrobat.

Większość (wszystkich ?!) profesjonalnych skanerów dokumentów i większość półprofesjonalnych automatycznie wykona OCR po wybraniu opcji „Zapisz jako PDF” i zaznaczeniu pola wyboru „do przeszukiwania” w ustawieniach. Tańsze modele „konsumenckie” wykonują OCR na podłączonym komputerze, typowe skanery sieciowe robią to wewnętrznie.

Słowo „przeszukiwalne” oznacza nic więcej i nic więcej niż to, że skaner wykona OCR, a następnie wygeneruje stronę ze zeskanowanymi bitmapami i nałoży na nie niewidoczne znaki z OCR, każdy umieszczony nad odpowiednim znakiem na mapie bitowej.

W ten sposób możesz wyszukiwać, a także wybierać, kopiować i wklejać „bitmapę” jak za pomocą magii. Jednak to wcale nie jest magia. W rzeczywistości kopiujesz tylko niewidzialny tekst.

Skaner może także wykonać dodatkową magię, na przykład skomponowanie dużego obrazu z wielu małych płytek, które również zostaną ponownie wykorzystane. Powoduje to znacznie mniejszy rozmiar dokumentu, niż byłoby to w rzeczywistości możliwe, ale może również prowadzić do zabawnych niespodzianek (nie tak zabawnych, jeśli Ci się przydarzą!), Takich jak Xerox, zmienia historię rachunków , jak na ironię, nawet jeśli nie wykonuje się OCR, w zależności na oprogramowaniu.


Tak, najprawdopodobniej tak to stworzyli, bardzo wątpię, że używają pełnego Adobe Acrobat.
Vojtěch Dohnal

Zrobiliśmy to, umieszczając cały tekst za zeskanowanym obrazem w miejscu, w którym OCR zgłosił, gdzie znalazł każdy węzeł tekstowy.
Thorbjørn Ravn Andersen

10

Ale jak to możliwe?

Zasadniczo program wykonuje OCR na pliku wejściowym, a następnie umieszcza niewidoczną warstwę tekstu na obrazie. Alternatywnie może również umieścić widoczną warstwę tekstu pod obrazem, dając ten sam efekt.

Po wybraniu czegoś obraz nie ma znaczenia, ponieważ warstwa tekstowa zostaje zaznaczona.

jak można to stworzyć?

Istnieje kilka sposobów. Biorąc pod uwagę, że Acrobat został już zasugerowany, dodam kilka bezpłatnych opcji (i na szczęście nie musisz zmuszać systemu Windows do korzystania z nich).

PDF-X Zmień przeglądarkę

Jest to macierzysty program Windows firmy Tracker Software . Wersja bezpłatna działa dobrze w Wine, jeśli używasz wersji 32-bitowej z 32-bitowym prefiksem, dlatego możesz jej używać w systemach Windows, macOS i Linux. W dwóch ostatnich przypadkach potrzebujesz odpowiednio PlayOnMac lub PlayOnLinux.

Oto zdjęcie z tej odpowiedzi, którą zostawiłem na Ask Ubuntu:

Zrzut ekranu przeglądarki PDF-XZmień pod Wine

OCRmyPDF

Jest to program wieloplatformowy napisany w języku Python , oparty na Ghostscript, Tesseract i Unpaper. Z dokumentów:

Co robi OCRmyPDF

OCRmyPDF analizuje każdą stronę pliku PDF, aby określić przestrzeń kolorów i rozdzielczość (DPI) potrzebne do przechwycenia wszystkich informacji na tej stronie bez utraty zawartości. Używa Ghostscript do rasteryzacji strony, a następnie wykonuje OCR na zrasteryzowanym obrazie, aby utworzyć „warstwę” OCR. Warstwa jest następnie szczepiona z powrotem na oryginalny plik PDF.

Można go łatwo zainstalować na pochodnych Debiana i Ubuntu:

apt-get install ocrmypdf

Lub na macOS:

brew tap jbarlow83/ocrmypdf
brew install ocrmypdf

W systemie Windows musisz użyć obrazu Docker. Szczegółowe informacje można znaleźć w oficjalnych dokumentach.

Użycie jest bardzo proste i sugeruję użycie opcjonalnych parametrów -d(prostowania) i -c(czystego) parametrów w celu uzyskania lepszych wyników. Wyprostuje każdą stronę i usunie małe kropki / niedoskonałości przed uruchomieniem procesu OCR.

Możesz (i powinieneś) podać język -l.

Oto przykład zaczerpnięty z tego wypaczonego dokumentu napisanego w języku włoskim:

Przykład dla OCRmyPDF

Polecenie, którego użyłem to:

ocrmypdf -l ita -d -c input.pdf output.pdf

Narzędzia online

Istnieje kilka narzędzi online, które robią to samo. Warto zauważyć, że PDF24 zawiera bezpłatną internetową wersję OCRmyPDF, z której można korzystać bez ograniczeń.

Zobacz też:


Dziękuję za tę odpowiedź, wypróbowałem OCRMyPDF i działało bardzo dobrze, ale niestety wsparcie językowe, którego potrzebuję, nie jest jeszcze dojrzałe, więc wyniki nie były jeszcze bardzo przydatne.
Vojtěch Dohnal

@ VojtěchDohnal, którym językiem jesteś zainteresowany? Czy zainstalowałeś odpowiedni pakiet językowy dla Tesseract? Zobacz listę tutaj: macports.org/ports.php?by=name&substr=tesseract-
Andrea Lazzarotto

4

Jest to prawdopodobnie spowodowane funkcją Acrobat OCR :

Acrobat rozpoznaje tekst w dowolnym pliku PDF lub pliku obrazu w kilkudziesięciu językach. Wszystko, co musisz zrobić, to otworzyć zeskanowany dokument lub obraz, który chcesz OCR, a następnie kliknąć niebieski przycisk Narzędzia w prawym górnym rogu paska narzędzi. Na tym pasku bocznym wybierz kartę Rozpoznaj tekst, a następnie kliknij przycisk W tym pliku.

...

Po rozpoznaniu tekstu możesz teraz oznaczać plik PDF za pomocą wszystkich zwykłych narzędzi do oznaczania - możesz wyróżniać, przekreślać tekst i nie tylko . Możesz nawet skopiować tekst z wykrytym formatowaniem, choć często jest to mniej dokładne niż samo rozpoznawanie tekstu.


Działa to również w Czytniku? Inne dokumenty nie działają w ten sposób dla mnie ...
Vojtěch Dohnal

Obawiam się, że nie, ale spójrz na ten artykuł: pdf.wondershare.com/pdf-software-comparison/…
duDE

3

Ze strony Adobe

Rozpoznaj tekst w zeskanowanym pliku PDF

Kiedy skanujesz dokumenty papierowe do formatu PDF, tak naprawdę po prostu robisz zdjęcia tych dokumentów. To świetnie nadaje się do zdjęć i innych drukowanych obrazów, ale co zrobić, jeśli masz 200-stronicowy dokument, w którym musisz znaleźć określone słowo lub wyrażenie? Za pomocą programu Acrobat rozpoznaje tekst w zeskanowanym pliku, dzięki czemu treść tekstu można przeszukiwać i wykorzystywać.

  1. Po zeskanowaniu dokumentu otwartego w programie Acrobat otwórz panel Narzędzia i rozwiń panel Rozpoznawanie tekstu. Jeśli nie widzisz „Rozpoznawanie tekstu” w panelu Narzędzia, możesz je dodać, wybierając menu w prawym górnym rogu (obrazek poniżej - zobacz, gdzie wskazuje ta mała czerwona strzałka? Kliknij tam).
  2. Kliknij „W tym pliku”, aby zeskanować otwarty dokument. Możesz po prostu zaakceptować ustawienia domyślne i kliknąć „OK”, gdy pojawi się okno Rozpoznaj tekst. Acrobat przekonwertuje obraz na użyteczny tekst; aby to przetestować, po prostu spróbuj edytować słowo lub zdanie za pomocą panelu Edycja treści. Czy to nie jest niesamowite !?

Dzięki, ale właśnie otworzyłem plik PDF w programie Reader DC i nie zrobiłem z nim nic specjalnego, inne dokumenty PDF ze zeskanowanymi stronami nie działają automatycznie w ten sposób ...
Vojtěch Dohnal

5
OCR zostało wykonane PRZED otrzymaniem pliku, gdy tekst zostanie rozpoznany, zostanie zapisany wraz z plikiem pdf.
Máté Juhász

@ VojtěchDohnal Prawdopodobnie potrzebujesz pełnego programu acrobat, nie tylko czytelnika
Thorbjørn Ravn Andersen
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.