インデックスを使用して作成されていないPDFからテキストを抽出するにはどうすればよいですか?すべてテキストですが、何も検索または選択できません。Kubuntuを実行していますが、Okularにはこの機能がありません。
インデックスを使用して作成されていないPDFからテキストを抽出するにはどうすればよいですか?すべてテキストですが、何も検索または選択できません。Kubuntuを実行していますが、Okularにはこの機能がありません。
回答:
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"
cuneiformを実行した直後にスクリプトのようなものを追加することで、それができると思います。
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-filename
ImageMagikユーティリティ:変換を支援するために使用できるImageMagikの使用について、SuperUserサイトに他の質問があります。
foo.pdf foo.pngを変換
OCRで画像をテキストに変換する
Googleドキュメントがします今テキストにアップロードした画像/ PDF文書を変換するOCRを使用しています。私はそれで大成功を収めました。
彼らは、巨大なGoogleブックスプロジェクトに使用されるOCRシステムを使用しています。
ただし、2 MBのサイズのPDFのみが処理に受け入れられることに注意する必要があります。
更新
1.試してみるには、Webブラウザーから<2MBのPDFをGoogleドキュメントにアップロードします。
2.アップロードされたドキュメントを右クリックし、「Googleドキュメントで開く」をクリックします。
... Googleドキュメントはテキストに変換され、同じ名前の新しいファイルに出力されますが、同じフォルダーにGoogleドキュメントタイプがあります。
Geza KovacsはUbuntuパッケージを作成しました。これは、基本的にhocr2pdf
Jukkaが提案したように使用するスクリプトですが、セットアップが少し速くなります。
パッケージの詳細を含むGezaのUbuntu フォーラム投稿から...
リポジトリを追加して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
コードのGitHubリポジトリ https://github.com/gkovacs/pdfocr/
pypdfocr
それを使用するのが最善で最も簡単な方法は、pdfを変更しません
pypdfocr your_document.pdf
最後your_document_ocr.pdf
に、検索可能なテキストを使用した別の方法があります。アプリは画像の品質を変更しません。オーバーレイテキストを追加して、ファイルのサイズを少し大きくします。
pypdfocr
2016年以降サポートされなくなり、メンテナンスされていないためにいくつかの問題に気づきました。ocrmypdf
(モジュール)は類似の仕事をし、次のように使用できます:
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」は出力形式を指定します。
免責事項:私は上記の製品を生産している会社の従業員です。
Apache PDFBoxを試して、PDFファイルからテキストコンテンツを抽出します。PDFファイルに埋め込まれた画像の場合は、ABBYY FineReader Engine CLI for Linuxを使用してテキストを抽出します。