답변:
Cuneiform OCR 시스템 의 BSD 라이센스 Linux 포트로 성공했습니다 .
바이너리 패키지를 사용할 수없는 것 같으므로 소스에서 빌드해야합니다. 본질적으로 모든 입력 이미지 형식을 지원하도록 ImageMagick C ++ 라이브러리를 설치해야합니다 (그렇지 않으면 BMP 만 허용 함).
간단한 README 파일과 별도로 문서화되지 않은 것으로 보이지만 OCR 결과는 상당히 좋습니다. 이것의 좋은 점은 OCR 텍스트의 위치 정보를 hOCR 형식으로 출력 하여 PDF 파일의 숨겨진 레이어에서 텍스트를 올바른 위치에 다시 넣을 수 있다는 것입니다. 이렇게하면 텍스트를 복사 할 수있는 "검색 가능한"PDF를 만들 수 있습니다.
hocr2pdf 를 사용 하여 원본 이미지 전용 PDF 및 OCR 결과에서 PDF를 다시 작성했습니다. 안타깝게도이 프로그램은 여러 페이지 PDF 작성을 지원하지 않는 것으로 보이므로이를 처리 할 스크립트를 작성해야 할 수도 있습니다.
#!/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"
위의 스크립트는 매우 기초적인 것입니다. 예를 들어 PDF 메타 데이터가 유지되지 않습니다.
aspell check --mode=html "$base.html"
설형 문자를 실행 한 직후 스크립트 와 같은 것을 추가하면 그렇게 할 수 있다고 생각합니다 .
pdftotext 가 효과가 있는지 확인하십시오 . 컴퓨터에 없으면 poppler-utils 패키지를 설치해야합니다.
sudo apt-get install poppler-utils
pdf 툴킷 을 찾을 수도 있습니다.
PDF 소프트웨어의 전체 목록은 여기에 위키 피 디아에.
편집 : OCR 기능 이 필요 하므로 다른 방법을 시도해야한다고 생각합니다. (즉, OCR을 수행하는 Linux pdf2text 변환기를 찾을 수 없습니다).
PDF를 이미지로 변환
gs : 아래 명령 은 여러 페이지 pdf를 개별 tiff 파일로 변환해야합니다.
gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = letter -sOutputFile = filename_ % 04d.tif -dNOPAUSE -dBATCH-파일 이름
ImageMagik 유틸리티 : SuperUser 사이트에는 ImageMagik 사용에 관한 다른 질문이 있습니다.
foo.pdf 변환 foo.png
OCR을 사용하여 이미지를 텍스트로 변환
Wikipedia의 OCR 소프트웨어 목록에서 가져옴
Google 문서 는 이제 OCR을 사용하여 업로드 한 이미지 / pdf 문서를 텍스트로 변환합니다. 나는 그것에 성공했다.
그들은 거대한 Google 도서 프로젝트에 사용되는 OCR 시스템을 사용하고 있습니다.
그러나 2MB 크기의 PDF 만 처리 할 수 있습니다.
업데이트
1. 사용해 보려면 웹 브라우저에서 <2MB pdf를 Google 문서에 업로드하십시오.
2. 업로드 한 문서를 마우스 오른쪽 버튼으로 클릭하고 "Google 문서로 열기"를 클릭하십시오.
... Google 문서 도구는 텍스트로 변환하고 이름은 같지만 Google 문서 도구는 같은 폴더에있는 새 파일로 출력합니다.
Geza Kovacs는 기본적 hocr2pdf
으로 Jukka가 제안한대로 사용하는 스크립트 인 Ubuntu 패키지를 만들었지 만 설정 속도가 약간 빨라졌습니다.
패키지에 대한 자세한 내용은 Geza의 Ubuntu 포럼 게시물 에서 ...
저장소 추가 및 우분투 설치
sudo add-apt-repository ppa:gezakovacs/pdfocr
sudo apt-get update
sudo apt-get install pdfocr
파일에서 ocr 실행
pdfocr -i input.pdf -o output.pdf
코드 https://github.com/gkovacs/pdfocr/에 대한 GitHub 리포지토리
사용 pypdfocr
하는 것이 가장 쉽고 쉬운 방법 은 pdf를 변경하지 않습니다.
pypdfocr your_document.pdf
마지막에는 your_document_ocr.pdf
검색 가능한 텍스트로 원하는 방식으로 다른 것을 얻을 수 있습니다. 앱은 이미지 품질을 변경하지 않습니다. 오버레이 텍스트를 추가하여 파일 크기를 약간 늘립니다.
pypdfocr
는 2016 년부터 더 이상 지원되지 않으며 유지되지 않아서 일부 문제를 발견했습니다. ocrmypdf
( module )은 비슷한 작업을 수행하며 다음과 같이 사용할 수 있습니다.
ocrmypdf in.pdf out.pdf
설치하기 위해서:
pip install ocrmypdf
또는
apt install ocrmypdf
PDFBeads 가 잘 작동합니다. 이 " 스캔 이미지를 단일 PDF 파일로 변환 "스레드 가 시작되었습니다. 흑백 책 스캔의 경우 다음을 수행해야합니다.
새 폴더에서
pdfbeads * > ../Output.pdf
그러면 조합 된 OCR PDF를 상위 디렉토리에 넣습니다.
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 라이브러리 는 대부분의 Linux 버전에서 작동합니다. PDF 입력 및 출력을 검색 PDF로 사용할 수 있습니다.
상용 패키지입니다. Linux 용 Asprise OCR SDK 무료 사본을 여기에서 다운로드하여 다음 과 같이 실행하십시오.
aocr.sh input.pdf pdf
참고 : 독립형 'pdf'는 출력 형식을 지정합니다.
면책 조항 : 나는 위의 제품을 생산하는 회사의 직원입니다.
PDF 파일에서 텍스트 내용을 추출하려면 Apache PDFBox 를 사용해보십시오 . PDF 파일에 이미지가 포함 된 경우 Linux 용 ABBYY FineReader Engine CLI를 사용 하여 텍스트를 추출하십시오.