Jak wyodrębnić tekst z pliku PDF, który nie został zbudowany za pomocą indeksu? Cały tekst, ale nie mogę niczego wyszukiwać ani wybierać. Używam Kubuntu, a Okular nie ma tej funkcji.
Jak wyodrębnić tekst z pliku PDF, który nie został zbudowany za pomocą indeksu? Cały tekst, ale nie mogę niczego wyszukiwać ani wybierać. Używam Kubuntu, a Okular nie ma tej funkcji.
Odpowiedzi:
Odniosłem sukces z licencjonowanym przez BSD portem Linux systemu Cuneiform OCR.
Wydaje się, że żadne pakiety binarne nie są dostępne, więc musisz je zbudować ze źródła. Upewnij się, że zainstalowane są biblioteki ImageMagick C ++, aby obsługiwać zasadniczo dowolny format obrazu wejściowego (w przeciwnym razie akceptuje tylko BMP).
Chociaż wydaje się, że jest to zasadniczo nieudokumentowane oprócz krótkiego pliku README, wyniki OCR są całkiem dobre. Zaletą jest to, że może wyświetlać informacje o pozycji tekstu OCR w formacie hOCR , dzięki czemu możliwe jest umieszczenie tekstu z powrotem we właściwej pozycji w ukrytej warstwie pliku PDF. W ten sposób można tworzyć pliki PDF z możliwością wyszukiwania, z których można kopiować tekst.
Użyłem hocr2pdf do odtworzenia plików PDF z oryginalnych plików PDF z obrazami i wyników OCR. Niestety program nie obsługuje tworzenia wielostronicowych plików PDF, więc może być konieczne utworzenie skryptu do ich obsługi:
#!/bin/bash
# Run OCR on a multi-page PDF file and create a new pdf with the
# extracted text in hidden layer. Requires cuneiform, hocr2pdf, gs.
# Usage: ./dwim.sh input.pdf output.pdf
set -e
input="$1"
output="$2"
tmpdir="$(mktemp -d)"
# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiffg4 -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"
# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
base="${page%.tiff}"
cuneiform -f hocr -o "$base.html" "$page"
hocr2pdf -i "$page" -o "$base.pdf" < "$base.html"
done
# combine the pages into one PDF
gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile="$output" "$tmpdir"/page-*.pdf
rm -rf -- "$tmpdir"
Pamiętaj, że powyższy skrypt jest bardzo szczątkowy. Na przykład nie zachowuje żadnych metadanych PDF.
aspell check --mode=html "$base.html"
w skrypcie zaraz po uruchomieniu pisma klinowego.
Sprawdź, czy pdftotext będzie dla ciebie działał. Jeśli nie ma go na twoim komputerze, będziesz musiał zainstalować pakiet poppler-utils
sudo apt-get install poppler-utils
Możesz również znaleźć zestaw narzędzi pdf .
Pełna lista oprogramowania pdf tutaj na wikipedii.
Edycja: Ponieważ potrzebujesz funkcji OCR, myślę, że będziesz musiał spróbować innego rozwiązania. (tzn. nie mogłem znaleźć linuksowego konwertera pdf2text, który robi OCR).
Konwertuj pdf na obraz
gs: Poniższe polecenie powinno przekonwertować plik PDF na wiele stron na pojedyncze pliki tiff.
gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = litera -sOutputFile = nazwa_pliku_% 04d.tif -dNOPAUSE -dBATCH - nazwa pliku
Narzędzia ImageMagik : na stronie SuperUser znajdują się inne pytania dotyczące korzystania z ImageMagik, które mogą pomóc w przeprowadzeniu konwersji.
konwersja foo.pdf foo.png
Konwertuj obraz na tekst za pomocą OCR
Zaczerpnięte z Wikipedii z listą oprogramowania OCR
Dokumenty Google będą teraz używać OCR do konwersji przesłanych dokumentów graficznych / pdf na tekst. Miałem z tym dobry sukces.
Korzystają z systemu OCR, który jest wykorzystywany w gigantycznym projekcie Google Books .
Należy jednak zauważyć, że tylko pliki PDF do rozmiaru 2 MB będą akceptowane do przetwarzania.
Aktualizacja
1. Aby wypróbować, prześlij <2 MB pdf do dokumentów Google z przeglądarki internetowej.
2. Kliknij prawym przyciskiem myszy przesłany dokument i kliknij „Otwórz za pomocą Dokumentów Google”.
... Dokumenty Google zostaną przekonwertowane na tekst i wydrukowane w nowym pliku o tej samej nazwie, ale Dokumenty Google zostaną zapisane w tym samym folderze.
Geza Kovacs stworzył pakiet Ubuntu, który jest w zasadzie skryptem hocr2pdf
używanym zgodnie z sugestią Jukki, ale przyspiesza konfigurację.
Z postu na forum Ubezu Gezi ze szczegółami na temat pakietu ...
Dodanie repozytorium i instalacja w Ubuntu
sudo add-apt-repository ppa:gezakovacs/pdfocr
sudo apt-get update
sudo apt-get install pdfocr
Uruchamianie ocr na pliku
pdfocr -i input.pdf -o output.pdf
Repozytorium GitHub dla kodu https://github.com/gkovacs/pdfocr/
Najlepszym i najłatwiejszym sposobem na jego użycie pypdfocr
nie jest zmiana pliku pdf
pypdfocr your_document.pdf
Na koniec będziesz miał inny your_document_ocr.pdf
sposób, w jaki chcesz, z tekstem do przeszukiwania. Aplikacja nie zmienia jakości obrazu. Zwiększa nieco rozmiar pliku, dodając tekst nakładki.
pypdfocr
nie jest już obsługiwany od 2016 r. i zauważyłem pewne problemy z powodu braku opieki. ocrmypdf
( moduł ) wykonuje podobną pracę i może być używany w następujący sposób:
ocrmypdf in.pdf out.pdf
Żeby zainstalować:
pip install ocrmypdf
lub
apt install ocrmypdf
PDFBeads działa dla mnie dobrze. Ten wątek „ Konwertuj zeskanowane obrazy na pojedynczy plik PDF ” mnie uruchomił. Aby skanować książki czarno-białe, musisz:
W nowym folderze uruchom
pdfbeads * > ../Output.pdf
Spowoduje to umieszczenie posortowanego pliku OCR w katalogu nadrzędnym.
inny skrypt używający tesseract:
#!/bin/bash
# Run OCR on a multi-page PDF file and create a txt with the
# extracted text in hidden layer. Requires tesseract, gs.
# Usage: ./pdf2ocr.sh input.pdf output.txt
set -e
input="$1"
output="$2"
tmpdir="$(mktemp -d)"
# extract images of the pages (note: resolution hard-coded)
gs -SDEVICE=tiff24nc -r300x300 -sOutputFile="$tmpdir/page-%04d.tiff" -dNOPAUSE -dBATCH -- "$input"
# OCR each page individually and convert into PDF
for page in "$tmpdir"/page-*.tiff
do
base="${page%.tiff}"
tesseract "$base.tiff" $base
done
# combine the pages into one txt
cat "$tmpdir"/page-*.txt > $output
rm -rf -- "$tmpdir"
Asprise OCR Library działa na większości wersji Linuksa. Może pobierać i wyprowadzać pliki PDF jako pliki PDF wyszukiwania.
To pakiet komercyjny. Pobierz bezpłatną kopię Asprise OCR SDK dla systemu Linux tutaj i uruchom ją w następujący sposób:
aocr.sh input.pdf pdf
Uwaga: samodzielny plik „pdf” określa format wyjściowy.
Oświadczenie: Jestem pracownikiem firmy produkującej powyższe produkty.
Wypróbuj Apache PDFBox, aby wyodrębnić zawartość tekstową z pliku PDF. W przypadku obrazów osadzonych w plikach PDF do wyodrębnienia tekstu użyj ABBYY FineReader Engine CLI dla systemu Linux .