brew install ocrmypdf tesseract tesseract-lang
sudo apt install ocrmypdf tesseract-ocr-kor tesseract-ocr-kor-vert gscan2pdf
ocrmypdf -l eng+kor --jobs 4 <원본.pdf> <OCR인식결과.pdf> # 이미지 보정 기능 등 추가 ocrmypdf -l kor+eng \ --deskew # 비틀림 보정 --clean # 배경 깨끗하게 --optimize 3 # PDF 용량 최적화. 최적화 안하려면 0 <원본.pdf> <OCR인식결과.pdf> # OCR 재실행. 이미 OCR 된 파일에 재실행. 최적화 등은 수행하지 않음. ocrmypdf -l eng --redo-ocr ... input.pdf output.pdf # OCR 없이 PDF 이미지 최적화만 실행 ocrmypdf --tesseract-timeout=0 --optimize 3 --skip-text input.pdf output.pdf
--deskew
: 비틀어진 이미지를 똑바로 세워주고 그로인해 인식률 높아짐. 무조건 해주는게 좋다.--clean
: unpaper 를 이용해 책 스캔된것을 깨끗하게 보정. 그러나 OCR 인식에서만 해당 이미지를 사용하고, 실제 출력에서는 원본 대로.ocrmypdf
로 언어를 따로따로 두번 인식시키면 앞서 인식한 언어 데이터는 사라지게 되므로 한 번에 모든 언어를 처리할 것.--optimize 숫자
0
: 최적화 안함1
: 원본 손상없이 최적화2
, 3
: 원본 손상하면서 최적화 최대한jbig2
라이브러리 설치 없이 처리 가능#!/usr/bin/env bash # 사용법 : pdf-opt.sh 원본.pdf # 결과는 원본.opt.pdf # alpine 버전은 버그가 많았음. FILE_NAME_ONLY=`basename "$1" .pdf` OPTIMIZED_NAME="${FILE_NAME_ONLY}.opt.pdf" docker run --rm -i --user "$(id -u):$(id -g)" --workdir /data -v "$PWD:/data" \ jbarlow83/ocrmypdf --tesseract-timeout=0 --optimize 3 --skip-text \ "/data/$1" "/data/$OPTIMIZED_NAME"