Załóżmy, że masz 2 „zeskanowane” pliki pdf.
- Duży, ale bez warstwy tekstowej.
- Mniejszy (z obrazami o niższej jakości), ale z prawidłową warstwą tekstową.
Oba pliki zawierają równe obrazy, różniące się jedynie kompresją.
Celem jest osadzenie tej samej warstwy tekstowej w 1. pdf.
„Tylko pierwszy plik OCR” nie jest rozwiązaniem. Wiem, że Acrobat (i niektóre inne narzędzia) są w stanie OCR bez zmiany warstwy obrazu, ale nie jestem zadowolony z ich jakości OCR.
Widzę więc dwa możliwe sposoby:
- Jakoś eksportuj i importuj warstwę tekstową
- Jakoś zamień obrazy w warstwie obrazu.
Jeśli chodzi o 1. sposób, nic nie znalazłem. Jeśli chodzi o drugi sposób, znalazłem dwa narzędzia, które są dość zbliżone do hocr2pdf i pdf2text , ale o ile rozumiem , wciąż są niewystarczające. :(
PS: użyj przykładu:
Właśnie znalazłem inny przykład, w którym taka operacja jest przydatna w sposób systematyczny.
Jeśli masz zeskanowany plik pdf-1 (bez warstwy tekstowej) z, powiedzmy, kompresją obrazu „jpg”, program do czytania Abbyy udostępnia OCR'd pdf, pdf-2. Byłby albo dość duży, jeśli wybierzesz bezstratną kompresję obrazu, albo miałby jakość obrazu znacznie niższą niż pdf-1. W wielu przypadkach najlepszym wyborem jest utrzymanie kompresji obrazu źródłowego w niezmienionej postaci i nie kompresowanie obrazu.
źródło
Odpowiedzi:
Ta odpowiedź na stackoverflow ma rozwiązanie. Możesz wyodrębnić tekst o współrzędnych ze swojego pdf-2 za pomocą
pdftotext -bbox
lub pakietu PDFMiner w Pythonie , a następnie zapisać ten ukryty tekst w nowym pliku PDF za pomocą pakietu Python ReportLab , a następnie scalić ten ukryty tekst PDF z pdf-1 za pomocą PDFtk (istnieje GUI dla Windows na stronie internetowej; teraz wiersz poleceń dla Unixa nazywa się teraz PDFtk Server.)Możesz też spróbować bezpośrednio połączyć pdf-1 i pdf-2 za pomocą PDFtk. Uruchom
pdftk pdf-2 multistamp pdf-1 output out.pdf
. Spowoduje to umieszczenie każdej strony pdf-1 przed odpowiednią stroną pdf-2, więc zobaczysz tylko obrazy z pdf-1 (zakładając, że są to skany i nie mają przezroczystego tła), ale ukryty tekst z pdf-2 zostaną uwzględnione. Minusem jest to, że może być bardzo duży, ponieważ będzie zawierał dwie kopie każdego obrazu strony. Sprawdziłem, czy to działa, a rozmiar wyjściowego pliku pdf jest sumą rozmiarów danych wejściowych.źródło
Jeśli musisz to zrobić samodzielnie, LibreOffice + GIMP powinien wykonać zadanie. Najpierw użyj LibreOffice Draw, aby wyodrębnić skany wysokiej jakości. Następnie edytuj je za pomocą GIMP, aby usunąć zeskanowany tekst. Na koniec dodaj obraz do pliku OCRed na niższej warstwie.
Ale jeśli zamierzasz to zrobić w ramach rutyny, prawdopodobnie masz problem z przepływem pracy.
źródło