명령 줄 / 스크립트를 통해 기존 PDF를 검색 가능 (OCR)으로 설정


21

OCR을 실행하고 검색 할 수없는 원본 파일을 검색 가능한 버전으로 바꾸어 기존 PDF 파일을 검색 가능하게 만드는 오프라인 스크립트 가능 도구를 찾고 있습니다.

예를 들어, www.pdfscannerapp.com-내가 원하는 것을 정확하게 수행하지만 GUI 만 가능하며 스크립트가 불가능합니다.

Evernote가 PDF 파일을 검색 가능하게 만들지 만 Evernote 내에서만 검색 가능하다는 것을 알고 있습니다.

나는 완벽한 OCR을 찾고 있지 않다. 적당히 수용 가능한 OCR조차도 괜찮지 만 부피가 큰 소프트웨어 패키지보다는 작은 유틸리티를 선호한다.

(나는 AD에 대해 비슷하지만 다른 질문을 알고 있습니다 : 스캔 할 수 있고 서명 가능한 PDF로 스캔하거나 변환 할 소프트웨어를 찾고 있지만 PDF 를 서명하거나 채울 필요는 없으며 솔루션은 스크립트 가능해야합니다)

편집하다:

1) 여러 유틸리티가 구조화 된 텍스트 추출을 허용하지만 추출하려면 텍스트가 있어야합니다. 주로 스캐너에서 생성 된 일반 PDF의 경우와 같이 비트 맵으로 래핑 된 PDF를 참조합니다.

2) 필자는 무료 솔루션을 반드시 찾고있는 것은 아니며 필요한 기능 만 수행하는 유용한 유틸리티를 구입하는 데 만족할 것입니다. OCR 기능만을 위해 구매하는 것이 정당한 비용이 아닙니다.

3) 위에서 언급 한 바와 같이, 나는 완벽한 OCR을 찾지 않고, 단지 적당한 OCR을 찾고 있습니다. 불행히도, 내 경험상, tesseract는 실제로 그 임계 값보다 낮습니다. 본인은 최소한 계좌 번호 (고객 번호)를 올바르게 인식 할 수 있도록 공공 요금 청구서 (OCR)를 청구 할 수있는 OCR을 "적절히 수용 할 수있는"것으로 정의합니다.

편집 : "스크립트 가능"또는 "자동화 가능", 즉 사람의 입력없이 자동으로 트리거되고 무인으로 실행할 수 있습니다.


2
... 어려울 지 모르지만 Tesseract OCR은 종종 code.google.com/p/tesseract-ocrUnix.SE의 OCR에 대해 언급 했습니다 .
hhh

1
비슷한 질문이 있습니다 . 답변이 요구 사항에 맞습니까?
nohillside

1
OCR을 언급했습니다. 요구 사항에 PDF 내 이미지 처리 또는 스캔 된 PDF 파일 처리가 포함됩니까? 텍스트가 간단한 포스트 스크립트로 포함 된 파일의 경우 "PDF2Text Pilot"과 같은 PDF- 텍스트 변환기가 적합 할 수 있습니다.
Tim B

@patrix 나는 무료가 아니라 다른 가격대의 더 작은 유틸리티를 찾고있었습니다. 여전히 가능한 해결책입니다. 감사합니다.
magma

@TimothyButler 불행히도 스캔 된 PDF (이미지)를 처리하고 있습니다. 그러나 좋은 힌트입니다. 감사합니다.
magma

답변:


5

"명령 줄"에서이를 "스크립트"로 작성하기위한 요구 사항이 무엇인지 명확하지 않습니다.

자동화에 대해 이야기하고 있다면 여러 유틸리티를 사용하여 가능합니다.

ABBYY FineReader Express + 키보드 마에스트로 + 헤이즐

나는 ABBYY FineReader Express + Keyboard Maestro + Hazel을 다음과 같이 사용합니다.

  1. Hazel은 새 PDF에 대해 지정된 폴더를 모니터링합니다.

  2. PDF가 발견되면 "ABBYY FineReader Express"에서 열립니다.

  3. Keyboard Maestro는 PDF를 OCR (Searchable PDF)로 변환하는 프로세스를 자동화하고 파일을 다른 디렉토리에 저장합니다.

이제 Hazel과 Keyboard Maestro를 이미 가지고 있지 않다면 초기 비용이 꽤 빨리 상승 할 것입니다.

PDFPen + AppleScript + 폴더 동작

PDFPen (또는 PDFPenPro) 및 폴더 작업 및 AppleScript와 비슷한 작업을 수행 할 수 있습니다. 한 가지 예는 https://gist.github.com/prenagha/1355037 을 참조 하십시오 .

Marco Arment는 Mac 용 OCR 앱을 조사한 결과 PDFPen에서 훌륭한 결과를 얻었고 자동화하기 쉽다는 것을 알았습니다.

"PDFpen applescript OCR"에 대한 Google 검색은 여러 대안을 제시합니다.


좋은 답변 TJ. 개암은 놀랍습니다. 소유하고 있으며 엄청나게 사용하는 것을 좋아합니다. 나는 현재 애비 / 키보드 마에스트로를 가지고 있지 않지만 Hazel + PDFPen은 놀라운 콤보입니다. 전반적으로 여기의 모든 답변은 일반적으로 매우 훌륭하고 약간 다른 청중에게 서비스를 제공하지만 Hazel + PDFPen은 원래 문제에 적합하다고 생각합니다. 받아 들였습니다.
magma

ABBYYFineReader 익스프레스 +1, 쉽게 최고의 OCR 거기 지금 나는 내 자신의 프로젝트에 대한 거의 십여 겪었
TechZen

12

당신이 원하는 것은 Tesseract OCR입니다. Google에서 유지 관리하고 다양한 플랫폼을 지원하는 오픈 소스 OCR입니다. 또한 기본 명령 줄 인터페이스도 있습니다. Mac 포트 프로젝트와 homebrew 에서 정확하게 찾고 사용 가능한 것 입니다.

프로젝트 홈 : https://github.com/tesseract-ocr

OS X에 설치하는 방법 : http://blog.matt-swain.com/post/26419042500/installing-tesseract-ocr-on-mac-os-x-lion

사용 예 : tesseract -l eng input.pdf output


좋은 프로젝트입니다. 내 테스트에서 인식이 좋지 않았지만 미세 조정이 불가능하다는 것이 확실합니다. 나는 게으른 솔루션을 찾고 있었지만 더 많은 제어를 원하고 시간을 할애 할 수 있다면 특히 좋은 선택 일 수 있습니다.
magma

tesseract는 최신 독점 앱과 비교할 때별로 좋지 않습니다. 특히 인코딩 및 수학에 문제가 있으며 종종 그리스어 문자를 많이 사용합니다.
TechZen

OS X 버전은 PDF 입력을 허용합니까? Windows 버전은 그렇지 않습니다.
더그

8

면책 조항 : OCR 솔루션이 아닙니다 (그러나이 답변은 여전히 ​​pdf에서 텍스트를 추출하는 데 유용합니다)

Apache Tika 라는 Apache Software Foundation 프로젝트가 있습니다 .

툴킷은 기존 파서 라이브러리를 사용하여 다양한 문서에서 메타 데이터 및 구조화 된 텍스트 컨텐츠를 감지하고 추출합니다.

PDFBox를 사용하여 PDF 텍스트 추출을 지원합니다 .

새 PDF 문서 작성, 기존 문서 조작 및 문서에서 컨텐츠를 추출 할 수 있습니다. Apache PDFBox에는 여러 명령 줄 유틸리티도 포함되어 있습니다

그리고 최근에는 Tesserac을 통해 OCR에 대한 지원도 추가했습니다.

텍스트 기반 솔루션의 경우 PDFBox를 사용하면 PDF에서 텍스트를 매우 간단하게 추출 할 수 있습니다.

또한 ExtractText docs 에서 볼 수있는 다른 멋진 옵션이 있습니다 .


텍스트를 추출하기위한 확실한 옵션이지만, OCR 기능이 없습니다.
magma

1
@magma OCR은 "광학 문자 인식"을 의미하며 확실히 "OCR 기능"이 있습니다. 이제 VGA 캠, 불량 스캐너 또는 먼 사진으로 생성 된 저해상도 이미지에서 텍스트를 추출하는 데 문제가 있습니까? 그러면 문제가 다르고 초 해상도와 같은 것들을 물리적으로 고려해야합니다. 보다 구체적이고 짧은 질문을하여 답변을 받으십시오. 이 질문을 원하는 기능으로 단순화하는 것이 좋습니다. 더 많은 것을 원한다면 새로운 질문을하십시오.
hhh

3
@hhh, 이진 형식을 구문 분석하여 사용하고 읽을 수 있도록 이진 파일 (예 : PDF)에서 텍스트를 추출합니다. 광학적 인 것은 없습니다. 텍스트는 이미 존재하며, 이러한 유틸리티는 텍스트를 추출하기 때문에 눈으로 쉽게 볼 수 있습니다. 광학 문자 인식은 비트 맵에서 픽셀의 패턴을 인식하고 해당 텍스트 조각을 생성 할 수있을만큼 충분히 이해한다는 점에서 다릅니다.
magma

이것은 원래 질문에 대한 답변이 아닙니다. AFAICT, pdfbox-app는 OCR을 수행하지 않습니다.
Feuermurmel

5

DEVONThink Pro Office를 추천 합니다. 훌륭한 응용 프로그램이며 AppleScript를 매우 잘 지원합니다. 아아 '프로 오피스'버전에만 OCR 기능이 있으므로 £ 100 ($ 150)를 지불해야합니다.

스크립팅 된 OCR에만 사용하면 과잉이 될 수 있지만 매우 유용한 앱입니다.

[편집]-아, 그냥 게시물을 다시 읽으십시오-그것은 과잉 일 것입니다!

쉘에서 OCR을 원한다면 엔진 DEVON 라이센스를 가진 ABBY와 대화를 시도 할 수 있습니다.

http://www.abbyy-developers.com/en:tech:samples:commandline_ocr


OS X의 DEVONThink Pro Office는 과잉이지만 흥미 롭습니다. 개발자가 OS X 및 iOS를 통해 그것을 설계했다면 작동하지만 (UI를 더 단순하게 유지) 작동 할 수도 있습니다. 멋진 아이디어-Pro 버전은 스크린 샷 및 PDF와 같은 모든 종류의 항목에 OCR 레이어를 자동으로 추가합니까? 그리고 사용자는 어떻게 든 그것을 "스크립트"할 수 있습니까?
hhh

2
예-이 앱에는 우수한 AppleScript 사전이 있으며 그 중에서도 앱에 저장된 이미지를 검색 가능한 PDF로 변환 할 수 있습니다.
Diggory

iPhone으로 사진을 찍거나 OS X로 스크린 샷을 찍어 ProjectA 폴더에 넣었다고 가정하면 DEVONThink는 언어를 지정하지 않아도 OCR 레이어를 자동으로 추가합니까? DropBox에 넣은 다음 OSX에서 DEVONThink를 만들어 폴더를 자동으로 확인한다고 가정하면 OS X 및 iOS를 통해 폴더를 사용할 수 있습니까?
잘만

어떤 방식으로, EverNote는 OCR을 추가하지만 내보내기는 허용하지 않는 EverNote처럼 들립니다. OCR을 사용하여이 소프트웨어에서 프로젝트를 내보낼 수 있습니까? 그렇지 않은 경우 매우 간단한 OCR 라이브러리와 언어 분석 라이브러리가 가장 효과적 일 수 있습니다. 아마도 다른 사람은 ABBY 일 것입니다. 아직 모르겠습니다.
hhh

2
여러 언어로 인식 할 수 있습니다 : i.stack.imgur.com/buDLI.png
Diggory

5

기존 PDF를 텍스트 파일로 변환하여 검색 가능하게 만들 수 있습니다. 최소한 Imagemagick , Ghostscript (PDF 변환 용) 및 Tesseract OCR 도구가 필요합니다.

몇 가지 명령 줄 예제 :

$ wget http://www.fmwconcepts.com/misc_tests/pdf_tests/test.pdf
$ convert -density 300 -depth 8 test.pdf test.png
$ tesseract test*.png test.txt
$ grep -i --color=auto the test*.txt
**The** details as told by surviving crew members, to **the** German publication Spiegel and published on ABC's

이것은 필요에 따라 더 확장 될 수 있습니다.

필요한 도구를 설치하려면 OSX에서 Homebrew 를 통해 설치할 수 있습니다 .

brew install imagemagick jpeg libpng ghostscript tesseract

Linux에서는 apt-get또는 yum대신 사용하십시오 brew.

더 많은 OCR 도구 는 Linux 시스템의 OCR을 확인하십시오.

관련 :


4

쉽게 구현할 수 있고 동일한 품질의 입력 파일과 합리적인 크기의 출력 PDF를 제공하는 솔루션은 OCRmyPDF입니다.

https://github.com/jbarlow83/OCRmyPDF


OCR 백엔드 Tesseract가 다소 실망 스럽지만 (올바르게 구성하는 데 한계가 있기 때문에) 멋진 솔루션처럼 보입니다.
magma

OCRmyPDF를 좋아합니다. 아래의 답변을 참조하여 Docker를 사용하여 쉽고 빠르게 설치하고 드래그 앤 드롭하여 자동화하는 방법을 설명합니다.
thadk

1

Stackoverflow에는 PDFBox 및 PDFBox가 사용하는 Apache의 TIKA와 같은 내용을 다루는 PDF 구문 분석 관련 질문이 있습니다 . 아래의 루비 코드는 PDF에서 쓰기를 추출합니다. 이 유형의 코드가 제대로 작동하려면 충분한 해상도를 가져야합니다. 따라서 해상도가 큰 스캐너를 충분히 구입 한 다음 일부 소프트웨어가 작동하는지 확인하십시오.

  1. https://github.com/yob/pdf-reader/tree/master/examples

SO 스레드

  1. /programming/5217783/pdf-parse-to-text-in-java

  2. /programming/8149179/alternative-to-tika-pdfbox-for-parsing-pdf-in-solr-any-version-later-than-1-4

  3. /programming/320621/ruby-pdf-parsing-gem-library

  4. /programming/15186740/haskell-parsing-reading-content-of-pdf-files

[편집하다]

지금 문제를 이해했는지 잘 모르겠습니다. 임의 사진, 스크린 샷, OCR 레이어가없는 PDF 등과 같은 다른 종류의 재료에 OCR 레이어를 추가하고 싶습니까? 솔루션을 모르지만 누군가 Automator 및 일부 OCR 소프트웨어를 사용하여 수행하는 방법에 대한 특정 질문을 알고 있다고 확신합니다.

재료에 OCR을 자동으로 추가하는 OCR 소프트웨어가 포함 된 자동화 스크립트?


다시 : 나는 이미 존재하는 텍스트를 구문 분석하거나 추출하려고하지 않습니다. 본질적으로 이미지, 비트 맵 인 PDF 파일의 텍스트 (OCR)를 인식하려고합니다. 원래 텍스트가 포함되어 있지 않습니다.
magma

@magma 제발, 내 업데이트를 참조하십시오. "검색 가능한 텍스트"없이도 다양한 종류의 문서를 검색 할 수 있도록 OCR 레이어 추가를 자동화 하시겠습니까? 이 작업을 수행 할 수 있다면 Finder에서 모든 문서를 검색 할 수 있습니다. 애플이 향후 업그레이드에서이 작업을 수행하지 않으면 놀랍습니다 ...
hhh

내 질문에 명시된 것처럼.
magma

1

이 유형의 자체 응용 프로그램의 경우 저는 헤이젤의 열렬한 팬입니다.

그것은 perl이나 python과 같은 더 명령 행 중심의 도구를 배우지 않고 선택한 OCR 엔진 (현재 PDF Pen Pro 임)과 쌍을 이루지 않고도 작업을 스크립트하는 것을 매우 쉽게 만듭니다. 파일을 최소한으로 처리하는 데 아무런 문제가 없습니다. 야단법석.

이 두 가지 모두 유료 소프트웨어이지만 둘 다의 유틸리티는이 경우를 훨씬 뛰어 넘습니다. 제 상황에서 과거 스캔 한 기록 (및 진행중인 논문)을 디지털화하는 데 수고를들이는 과정에서 이들의 가격이 다른 곳에서 프로그래밍하는 데 소비 한 시간보다 훨씬 길어졌으며 두 도구를 모두 소유하고 있기 때문에 다른 많은 작업을 수행 할 수 있습니다. 그들.


0

PDFScannerApp 은 비공식 스크립팅을 지원합니다. Automator 작업에 대해서는 저자에게 문의하십시오.


0

Adobe Acrobat을 OCR에 일괄 적으로 사용합니다. 스캔 후 양면 스캐너에서 OCR을 수행 할 수 있지만 Acrobat의 OCR 기술이 더 정확하다고 생각합니다. OCR이없는 폴더를 가리키면 acrobat re는 이제 텍스트 레이어를 포함하여 PDF를 검색 가능한 PDF로 저장합니다. 명령 줄을 통해 OCR을 원한다면 방법을 모르지만 Autohotkey를 사용하여 GUI 끝을 자동화 할 수 있습니다. 명령 줄만큼 신뢰할 수없고 빠르지는 않지만 GUI 상호 작용을 최소화하기 위해 워크 플로 작업을 설정 한 후 작업을 수행합니다.

Mac의 경우 Apple 스크립트는 Mac에서 아직 시도하지 않았지만 PC에서 Autohotkey가 수행하는 작업을 수행합니다.

자동 단축키는 레코더와 함께 제공되므로 대부분의 스크립트 작성은 저녁 식사를위한 약간의 편집과 함께 원할 경우 시간이 많이 소요됩니다.

OCRing 이미지를 실험했지만 Acrobat을 통해 프로세스를 완전히 자동화하지 않았습니다. 커맨드 라인은 이상적이지만 Acrobat을 능가하는 고품질 OCR 엔진을 찾지 못했기 때문에 지금은 Acrobat을 고수합니다.


0

나는 최근에 이것을 우연히 발견했다 : http://ocrkit.com/faq.html

14 일 후에 지불해야합니다.


1
다른 질문에 오신 것을 환영합니다! 우리는 최선의 답변을 찾으려고 노력하고 있으며 그 답변은 왜 그들이 최고인지에 대한 정보를 제공합니다. 추천 한 소프트웨어가 다른 소프트웨어보다 나은 이유를 설명하십시오. 일반적으로 링크 전용 답변은 삭제 될 수 있으므로 항상 모든 관련 정보를 포함하여 답변을 작성하려고합니다. 양질의 답변을 제공하는 방법에 대한 답변 방법을 참조하십시오 .
fsb

0

Docker를 사용하여 고품질 드래그 앤 드롭 변환을 수행했습니다.

만약 너라면:

  1. Mac 용 Docker를 설치 하고
  2. 그런 다음 새로운 Automator 앱을 만듭니다
  3. "셸 스크립트 실행"작업 내에 이러한 내용이 포함됩니다. 패스 입력을 선택하십시오."as arguments"

/bin/bash 스크립트 텍스트 :

cd "`dirname "$1"`"
/usr/local/bin/docker run --rm -v "$(pwd):/home/docker" jbarlow83/OCRmyPDF --force-ocr "`basename "$1"`" "`basename -s .pdf "$1"`-ocr.pdf"

그런 다음 PDF를 끌어다 놓으면 파일 이름에 "-ocr"이 추가 된 유사한 이름의 PDF를 얻게됩니다.

어딘가에 복사하기 위해 파일을 Automator로 반환하도록 쉽게 수정할 수 있다고 생각합니다. 훌륭한 OCRmyPDF 도커 패키지에 대한 자세한 내용. 주요 도구는 (또한 다른 대답에 언급).

"지정된 파인더 항목 가져 오기"조치를 입력으로 사용하여 Automator 자체에서 테스트 할 수 있습니다.

처음 실행하면 OCRmyPDF 용 Docker 이미지를 보이지 않게 다운로드해야하므로 시간이 더 걸립니다. 터미널에서 달리 실행 docker pull jbarlow83/ocrmypdf하여 첫 번째 실행 속도를 높일 수 있습니다. 일반적인 실행은 높은 DPI 페이지 당 약 10 초가 걸리지 만 테이블이나 다이어그램이 있어도 텍스트에서 음성으로 변환 가능한 결과가 자동으로 나타납니다. OCR 처리하기 전에, 내가 사용하는자를 Sejda을 다른 페이지 말도 마진 단어가 제거되도록.

--force-ocr주장은 도구가 이전의 OCR 시도를 무시하고 덮어 쓰도록 지시합니다. 필자의 경우 대개 부분적이고 쓸모가 없습니다.


0

OCRKit에는 AppleScript 지원과 CLI가 모두 있습니다. 자신의 도움말 페이지 :

애플 스크립트

OCRKit을 특정 워크 플로우에 통합하도록 스크립트 할 수도 있습니다. 예를 들어, MFP 복사기 등에서 공유 폴더를 통해 들어오는 파일을 처리하고 OCRKit에 열도록 지시하면 AppleScript를 통해 처리됩니다.

tell application "OCRKit"
   -- the wonders of AppleScript POSIX path handling, ...
   open "Users:admin:Desktop:orderform.pdf"
   open POSIX path of "/Users/Admin/Desktop/orderform.pdf"
end tell 

커맨드 라인

OCRKit 버전 2.5 이후 직접 명령 행 스크립팅이 지원됩니다. 이는 일괄 처리에서 OCRKit의 사용을 크게 단순화하고 더 많은 옵션을 설정할 수 있으며 AppleSCript보다 더 강력하고 플랫폼 간입니다.

OCRKit.app/Contents/MacOS/OCRKit \ 
    --lang en | de | fr | es | ... \
    --format pdf | html | rtf | text \
    --no-progress \
    --output out-file in-file

OCRKit 버전 16.9부터 추가 명령 행 옵션이 지원됩니다.

-r, --recursive directory

새 파일이 있는지 디렉토리를 반복적으로 스캔하십시오. 텍스트 레이어 또는 벡터 그래픽으로 OCRKit에서 파일을 건너 뜁니다.

--pattern "regex"

재귀 스캔 중에 파일 이름을 일치시키는 데 사용되는 패턴입니다. 기본값으로 %.pdf$, TIFF에 대한 추천입니다%.tiff?$

--log file

재귀 스캔 중에 파일에 로그 파일 정보 및 통계를 씁니다.

--password secret

일괄 처리 중에 비밀 암호를 사용하여 PDF 파일의 암호를 해독하십시오.

--test-run [ fast ]

PDF 파일을 테스트하거나 총 처리 시간을 추정하기 위해 페이지 수를 얻으려면 테스트 모드에서만 테스트 일괄 처리를 실행하십시오. "fast"는 이미지 및 벡터 분석을 위해 모든 페이지를 거치지 않고 각 파일의 첫 페이지 만 검사합니다.

--tag name

일괄 처리 중에 확장 속성 이름을 사용하여 파일의 처리 상태에 태그를 지정하십시오. macos:OCRKit (%s)대신 기본 macOS Finder 태그를 사용하거나 단순히 macos:OCRKit상태 속성을 포함하지 않습니다. 상태 속성의 순서는 다음과 같습니다 : started, analyzed, processed, 또한 할 수있다 encrypted.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.