PDF를 텍스트 검색 가능한 PDF로 바꾸는 방법은 무엇입니까?


20

PDF로 스캔 한 문서가 많이 있으며 검색 할 수 있기를 원합니다. 어떻게해야합니까?

본질적으로 나는 pdf를 OCR 한 다음 추출 된 텍스트를 새로운 pdf로 다시 혼합해야합니다. 여러 가지 다른 솔루션 ( PDF에 OCR 정보 추가 에서 찾은 솔루션 포함)을 성공적으로 시도하지 못했습니다 .

  1. pdfocr (이 문제는 https://github.com/gkovacs/pdfocr/issues/7 )
  2. pdfsandwich (소프트웨어 센터에서 패키지가 불량하다고 말하고 설치해서는 안 됨)
  3. 소프트웨어 센터의 OCRfeeder는 ODT로 잘 내보내지만 PDF로 내보낼 때 반응하지 않습니다.
  4. Gscan2pdf 는이 토론에서 보고 대로 검은 색이지만 검색 가능한 모든 이미지를 내 보냅니다 .
  5. Pdfxchange 뷰어가 500 페이지가 넘는 파일에서 ocr을 즉시 처리 할 수 ​​있다고 생각하지 않습니다.

모르는 소프트웨어 패키지가 있습니까? 아니면 이것을하는 스크립트?


3
나는 그것을 직접 시도하지는 않았지만 이 프로젝트 가 과거에 권장되는 것을 보았습니다 .
Glutanimate

방금 썼습니다 pdf2searchablepdf. 에 의존합니다 tesseract. 잘 작동한다. 사용하기 매우 쉽습니다. 여길 봐. askubuntu.com/a/1187881/327339
Gabriel Staples

답변:


12

우분투 <16.04

Glutanimate의 의견에 따라 작동하는 해결책을 찾았습니다. 그것은이다 OCRmyPDF 스크립트 .

git clone https://github.com/jbarlow83/OCRmyPDF
cd OCRmyPDF
sh ./OCRmyPDF.sh -h  # to see the usage

GNU 병렬을 설치해야한다는 메시지가 표시됩니다. /ubuntu//a/298598/115155에 따라 수행 할 수 있습니다 ( 두 번째 줄은 선택 사항이며 맛과 버전에 따라 다릅니다).

sudo apt-get install parallel
sudo rm /etc/parallel/config

마지막으로 다음 명령을 사용하여 PDF를 OCR 할 수 있습니다.

sh ./OCRmyPDF.sh input.pdf output.pdf  # change input and output to the files you want

명령이 응답하지 않는 것 같으면 -v플래그를 사용하여 자세한 정보를 늘릴 수 있습니다 ( -vv또는로 증분 사용할 수 있음 -vvv). 짧은 pdf에서 먼저 결과를 테스트하는 것이 가장 좋습니다. 다음과 같이 PDF를 줄일 수 있습니다.

pdftk A=input.pdf cat A1-5 output output.pdf

우분투> = 16.04

Ubuntu 16.04부터 OCRmyPDF는 apt. 그냥 뛰어

sudo apt install ocrmypdf
ocrmypdf -h   # to see the usage

마지막으로 다음 명령을 사용하여 PDF를 OCR 할 수 있습니다.

ocrmypdf input.pdf output.pdf  # change input and output to the files you want

명령이 응답하지 않는 것 같으면 -v플래그를 사용하여 자세한 정보를 늘릴 수 있습니다 ( -vv또는로 증분 사용할 수 있음 -vvv). 짧은 pdf에서 먼저 결과를 테스트하는 것이 가장 좋습니다. 다음과 같이 PDF를 줄일 수 있습니다.

pdftk A=input.pdf cat A1-5 output output.pdf

질문이 있으시면 새로운 Github Repo를 살펴보십시오 .


답변을 수락하고 해결 하시겠습니까? (답변 목록에 나타나지 않도록)
등록 된 사용자

그냥 sudo -H pip install git+https://github.com/jbarlow83/OCRmyPDF우분투 16.04를위한
마틴 토마스

1
Ubuntu 16.10 이상에서는을 수행 할 수 있습니다 sudo apt install ocrmypdf.
endolith

6

@ don.joey 님이 답변했습니다 ocrmypdf 스크립트로 . 그러나 지금 바로 설치할 수 있습니다 (16.10 이후).

sudo apt install ocrmypdf

그런 다음 필요한 테서 랙트 언어 를 설치 해야합니다.

시스템에 이미있는 언어를 나열하려면 다음을 입력하십시오.

tesseract --list-langs

누락 된 경우 설치하십시오. 예를 들어

sudo apt install tesseract-ocr-spa

이제 다음 명령을 사용하여 검색 가능한 PDF (스캔 된 문서에 따라 품질이 다른)를 생성 할 수 있습니다.

ocrmypdf -l 'spa' old.pdf new.pdf

물론 매뉴얼 페이지에서 추가 옵션을 확인할 수 있습니다.


내 투표를 부탁합니다!
don.joey

4

pdfsandwich이 작업을 정확하게 수행합니다. 소프트웨어 센터에 제공되는 패키지가 있다는 것을 몰랐지만 프로젝트 웹 사이트에서 Ubuntu deb 패키지를 제공하고 있습니다 (참조 http://www.tobias-elze.de/pdfsandwich/ 참조). 현재 가장 최신 버전 (0.1.2)을 포함하여 아직 소프트웨어 센터에 없을 것입니다.

스캔 한 파일이 있으면 scanned_file.pdf간단히 전화하십시오.

pdfsandwich scanned_file.pdf

파일을 생성하는 scanned_file_ocr.pdf스캔 된 페이지에 인식 된 텍스트가 추가 된 .

대부분의 기존 솔루션과 비교하여 설치된 tesseract 버전을 자동 감지하고 그에 따라 동작을 조정합니다. 또한 OCR 프로세스 이전에 스캔 한 이미지의 전처리를 수행하여 광학 문자 인식을 상당히 향상시킬 수있는 어두운 가장자리 제거 또는 왜곡 제거 등을 수행합니다.

면책 조항 : 나는 개발자 pdfsandwich이며 따라서 큰 편견입니다.


apt-get을 사용하여 설치된 pdfsandwich 버전 0.1.4가 왜 우분투 16.04에서 각 문자를 검은 사각형으로 변환합니까?
Valentas

1
자세한 내용 없이는 대답하기가 어렵습니다. 우선, 최신 버전의 도구를 사용하는 것이 좋습니다. 현재 버전은 0.1.6입니다. 웹 사이트에서 Ubuntu 용 deb 패키지를 찾을 수 있습니다. 두 번째 방법으로도 도움이되지 않으면 -verbose 옵션을 사용하여 자세한 정보를 얻고이 세부 정보를 사용하여 버그 보고서를 제출할 수 있습니다.
Tobias Elze

나를 위해 몇 가지 문제. 변환 : 보안 정책`PDF '@ error / constitute.c / IsCoderAuthorized / 408에서 허용하지 않는 작업을 수행하려고합니다. 따라서 imagemagick.org/script/install-source.php에서 다운로드 한 소스에서 imagemagick 을 설치해야하는데 '공유 라이브러리를로드하는 중에 오류가 발생했습니다. libMagickCore-7.Q16HDRI.so.6 : 공유 객체 파일을 열 수 없습니다 : "아니요 파일 또는 디렉토리 ''및이 솔루션은 'sudo ldconfig / usr / local / lib'를 실행하여 작동했습니다.
pierrely

PDF를 조작하거나 다듬을 계획이라면 이러한 유틸리티를 추가하는 것이 좋습니다. 1. 왼쪽 및 오른쪽 페이지 (양면 원본)를 분할하는 pdfshuffler 2. pdftk pdf 체인 pdftk (jar 파일로)를 사용하여 파일을 짝수 및 홀수 페이지로 개별적으로 분할합니다. 2-goocanvas-2.0 gir1.2-poppler-0.18 python-pygoocanvas python-poppler python-pypdf2. pdfsandwich는 파일 크기를 10 배까지 줄인 치료를했습니다. 감사. Ubuntu 19.04는 또한 pdfsam을 분할하여 병합하고 다운로드 후 Java jar 파일로 실행
pierrely

0

OCR 피더 에 버그가 있습니다.

/usr/lib/python2.7/dist-packages/reportlab/pdfgen/textobject.py

436 번째 줄 :

            lines = asUnicode(stuff).strip().split('\n')
# bug here, was:
#            lines = '\n'.split(asUnicode(stuff).strip())

이것을 변경하고 그것은 나를 위해 일했다


0

운영체제 : Ubuntu 18.04

먼저 다음을 사용 tesseract-ocr하여 설치하십시오 .

apt-cache show tesseract-ocr
sudo apt-get update && sudo apt-get upgrade
apt-get install tesseract-ocr --print-uris
apt-get install tesseract-ocr
sudo !!

tesseract와 함께 영어 이외의 언어를 사용하려는 경우 해당 언어 패키지를 설치해야합니다. 예를 들어 포르투갈어의 경우 다음을 수행해야합니다.

sudo apt-get install tesseract-ocr-por

그렇지 않으면 오류가 발생합니다.

Error opening data file /usr/share/tesseract-ocr/4.00/tessdata/por.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to your 
"tessdata" directory.
Failed loading language 'por'
Tesseract couldn't load any languages!
Could not initialize tesseract.

Google "tesseract PDF"를 사용하면 다소 오래된 게시물 이있을 것입니다 . 그러나 유용한 힌트를 제공합니다. 먼저 .pdf파일을 .tiff하나로 변환해야 합니다 . 운영:

convert -density 125 originalfile.pdf -depth 8 -alpha Off newfile.tiff

오래된 게시물에서와 같이 추가를 잊어 버린 alpha -Off경우 다음 오류가 발생합니다.

Tesseract Open Source OCR Engine v4.0.0-beta.1 with Leptonica
Error in pixReadFromTiffStream: spp not in set {1,3,4}

이제 최종 명령을 실행할 수 있습니다. 원본 PDF가 포르투갈어 인 경우에는 다음 명령이 필요합니다.

tesseract -l por newfile.tiff output pdf 

생성 된 파일 이름은으로 지정 output.pdf됩니다. 예를 들어, PDF가 프랑스어 인 경우 해당 파일을 설치 한 후 tesseract-ocr-fra다음을 실행합니다.

tesseract -l fra newfile.tiff output pdf 

그리고 원하는 파일은 다시됩니다 output.pdf.


0

나는이 같은 문제가 있었으므로 주말에 이것을 썼다. 기회를주세요. 잘 작동합니다! 주위에 간단한 래퍼 tesseract입니다. 그것은 사용 pdftoppm후 사용, TIFF 파일의 무리로 PDF 변환tesseract 그들에 OCR (광학 문자 인식)을 수행하고 출력으로 검색 가능한 PDF를 생성 할 수 있습니다. 스크립트가 완료되면 모든 중간 임시 파일이 자동으로 삭제됩니다.

소스 코드 : https://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF

설치 및 사용 지침 pdf2searchablepdf:

2019 년 11 월 11 일 우분투 18.04에서 테스트되었습니다.

설치:

git clone https://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF.git
./PDF2SearchablePDF/install.sh
sudo apt update
sudo apt install tesseract-ocr

사용하다:

pdf2searchablepdf mypdf.pdf

이제 검색 가능한 텍스트가 포함 된 pdf mypdf_searchable.pdf를 갖게 됩니다!

끝난. 래퍼는 현재 bash로 완전히 작성되었으므로 파이썬 종속성이 없습니다.

참조 또는 관련 자료 :

  1. PDF2SearchablePDF : https://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF
  2. PDF를 텍스트 검색 가능한 PDF로 바꾸는 방법은 무엇입니까?
  3. 가장 간단한 OCR 솔루션은 무엇입니까?
  4. PDF에서 임베드 된 이미지 추출
  5. pdfsandwich : 방금 발견 한 대체 소프트웨어 래퍼입니다. http://www.tobias-elze.de/pdfsandwich/
  6. /unix/301318/how-to-ocr-a-pdf-file-and-get-the-text-stored-within-pdf/551526#551526
  7. [PDF를 사용하여 PDF를 여러 이미지로 변환하는 방법 pdftoppm] PDF에서 포함 된 이미지 추출
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.