OCR情報をPDFに追加する


28

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

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



4
@ヤコブ、私はそれがduだとは思わない、私たちはさまざまなことを求めている。もう1つの質問は、いくつかのpdfからテキストを抽出する(つまり、対応するtxtファイルを生成する)ことです。私の質問は、ocr情報を追加し、pdfリーダーで検索機能を動作させるためにpdfを変更することです。質問を明確にします。
fdierre

文書をスキャンするためにどのように、そして何を使用しましたか?
ミッチ

@Mitch私はオフィスのRicoh Aficio MP-C2500プリンター/コピー機/スキャナーを使用しました。:-)
fdierre

スキャンおよび/またはOCRソフトウェア?
ミッチ

回答:


21

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の開発者であり、明らかに偏見があります。


6
これは本当に素晴らしい、ありがとう。ただし、画像を変更しているように見えますが、画像などに不鮮明なマスクをかけているようです。以前とまったく同じように画像を残す方法はありますか?私の特定の例では、フィルターはいくつかの方程式のいくつかの分数からバーを削除することさえできました。しかし、他のすべてはかなりうまくいきます
...-naught101

品質の悪いパッケージ: `/tmp/pdfsandwich_0.1.3_amd64.debのリンチチェック結果:E:pdfsandwich:control-file-has-bad-permissions md5sums 0664!= 0644 E:pdfsandwich:control-file-has-bad-owner md5sums james / james!= root / root E:pdfsandwich:wrong-file-owner-uid-or-gid usr / 1000/1000 E:pdfsandwich:wrong-file-owner-uid-or-gid usr / bin / 1000 / 1000年E:pdfsandwich:間違ったファイル所有者-GIDのUID-または-USR / binに/ pdfsandwich ...
AB

SFから最新バージョンのdebをダウンロードします。最後にエラーが発生した場合、ghostscript(v0.1.4)に関連している可能性があります。現在、v0.1.6はを使用していpdfuniteます。
パブロA

1
@PabloBianchiを使用してOCRedテキストを手動で校正する方法はあります pdfsandwitchか?私はこれをいくつかのスウェーデン語のドキュメントで行っていますが、テキストファイルであれば簡単に修正できるスペルミス(おそらく元のフォントのため)を除いてうまく機能しますが、結果のPDFでどのようにこれを行うことができます?
zrajm

@zrajmでは、OCRステップでの認識を向上させるために、いくつかのpdfsandwichパラメーターを使用できます。PDFの画像の背後にある非表示のテキストを編集するには、LibreOffice Draw、Inkscape、または任意のPDF編集ツールでテキストボックスレイヤーを編集するだけです。より良い方法を見つけた場合は、ここに投稿してください。DaH jImej!
パブロ


4

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

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

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

ここに画像の説明を入力してください


2

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


6
ここにGithubの:github.com/gkovacs/pdfocr。ただし、これには、pdfsandwich高解像度画像を含むPDFを変更/圧縮し、基本的に元の画像情報の一部を破壊するため、と同じ問題があります。
-jmiserez

2

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

https://github.com/jbarlow83/OCRmyPDF


スクリプトで素晴らしい結果が得られました。Geza Kovacsによるpdfocrとは異なり、追加の(一部のLinuxディストリビューションではコンパイルが難しい!)ライブラリは必要ありません。ありがとうございました!
マキシム

0

これは私の迅速かつ汚いの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

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"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.