文書の高品質スキャンがあります。このようなスキャンはPDF形式です。
ocr情報をPDFに追加して、検索可能にするにはどうすればよいですか?検索可能というのは、pdfをエビエンスで表示するときに、CTRL-Fで実際にpdfコンテンツを検索できるようにすることが目標であることを意味します。
文書の高品質スキャンがあります。このようなスキャンはPDF形式です。
ocr情報をPDFに追加して、検索可能にするにはどうすればよいですか?検索可能というのは、pdfをエビエンスで表示するときに、CTRL-Fで実際にpdfコンテンツを検索できるようにすることが目標であることを意味します。
回答:
Ubuntu debパッケージを提供します。OCRエンジンとしてtesseractを使用します。次の呼び出しは、スキャンしたPDFにテキストレイヤーを追加します。
pdfsandwich scanned.pdf
以下は同じことを行いますが、別の言語(ISO 639-2コード、ダウンロードtesseract-ocr-LANGCODE
パッケージ)でレイアウトを設定します。
pdfsandwich -verbose -lang spa -layout single scanned.pdf
エラーが発生した場合は、Sourceforgeから最新バージョンのdebをダウンロードしてください。
免責事項:私はpdfsandwichの開発者であり、明らかに偏見があります。
pdfunite
ます。
pdfsandwitch
か?私はこれをいくつかのスウェーデン語のドキュメントで行っていますが、テキストファイルであれば簡単に修正できるスペルミス(おそらく元のフォントのため)を除いてうまく機能しますが、結果のPDFでどのようにこれを行うことができます?
理想的ではない解決策を見つけましたが、非常に効果的な解決策です。
WineでPDF X-Change Viewerを使用しています。既存の画像ベースのpdfにテキストレイヤーを追加するOCR機能があります。
したがって、この不可視レイヤーからテキストを検索およびコピーできます。
コマンドラインソリューションの場合、pdfocrを使用できます。
簡単に言うと、ソフトウェアをインストールします。
$ sudo apt-get install python-software-properties
$ sudo add-apt-repository ppa:gezakovacs/pdfocr
$ sudo apt-get update
$ sudo apt-get install pdfocr
次に、pdfocrを実行します。
$ pdfocr -i scanned.pdf -o scanned.with.search.pdf
Ubuntu 12.04 LTSでうまくいきました。
pdfsandwich
高解像度画像を含むPDFを変更/圧縮し、基本的に元の画像情報の一部を破壊するため、と同じ問題があります。
簡単に実装でき、同じ品質の入力ファイルと適切なサイズの出力PDFを提供するソリューションはOCRmyPDFです。
これは私の迅速かつ汚いのImageMagickのにベースのソリューションですconvert
、tesseract
、parallel
およびpdftk
(Debianベースのディストリビューションで利用可能なすべての)。これは主にこのブログ投稿に基づいています。
#!/bin/sh -ex
density=${2:-"300"} # default to 300 DPI if 2nd parameter is not given
convert -monitor -density "$density" "$1" -monochrome -compress lzw -alpha deactivate page_%05d.tif
parallel --bar "tesseract {} {.} pdf 2>/dev/null" ::: page_*.tif
pdftk page_*.pdf cat output "${1%.*}-ocred.pdf" compress
# Cleanup temp files
rm page_?????.tif page_?????.pdf
ppmファイルを含むディレクトリ全体では、このスクリプトppm2ocrpdf.shを使用できます
#!/bin/sh
mkdir .pdf
for f in *.ppm; do
echo " Running convert -compress JPEG -quality 88 "$f" -page a4 "$f"ppm.pdf"
convert -compress JPEG -quality 88 "$f" -page a4 "$f"ppm.pdf
echo " Running tesseract -l deu "$f" "$f" pdf"
tesseract -l deu "$f" "$f" pdf
echo " Running pdftk "$f".pdf cat output ./.pdf/"$f"ocr.pdf"
pdftk "$f".pdf cat output ./.pdf/"$f"ocr.pdf
echo " Running rm "$f"ppm.pdf"
rm "$f"ppm.pdf
echo " Running rm "$f".pdf"
rm "$f".pdf
done
echo " Running pdftk *.pdf cat output ../outdocument.pdf"
pdftk ./.pdf/*.pdf cat output outOcrDocument.pdf
echo " Running rm ./.pdf/*.pdf"
rm ./.pdf/*.pdf
echo " Running rmdir .pdf"
rmdir .pdf
echo "Done"