web-dev-qa-db-ja.com

PDFへのOCR情報の追加

文書の高品質スキャンがあります。このようなスキャンはPDF形式です。

Ocr情報をPDFに追加して、検索可能にするにはどうすればよいですか?検索可能というのは、pdfをエビエンスで表示するときに、CTRL-Fで実際にpdfコンテンツを検索できるようにすることが目標であることを意味します。

27
fdierre

pdfsandwich

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の開発者であるため、明らかに偏っています。

20
Tobias Elze

トリックを行うプロジェクトが2つあります: GScan2PDF および OCRFeeder

8
Aldi

理想的ではない解決策を見つけましたが、非常に効果的な解決策です。

私は PDF X-Change Viewer Wineを使用しています。既存の画像ベースのpdfにテキストレイヤーを追加するOCR機能があります。

したがって、この不可視レイヤーからテキストを検索およびコピーできます。

enter image description here

4
To Do

簡単に実装でき、同じ品質の入力ファイルと適切なサイズの出力PDFを提供するソリューションはOCRmyPDFです。

https://github.com/jbarlow83/OCRmyPDF

2
user127022

コマンドラインソリューションでは、 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でうまくいきました。

2
Robert Citek

これは、ImageMagickのconverttesseractparallelおよび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
0
stefanct

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"
0
PetaT