PDFインデックスで作成されていないものからテキストを抽出するにはどうすればよいですか?すべてテキストですが、何も検索または選択できません。Kubuntuを実行していますが、Okularはこの機能があります。
BSDライセンスの LinuxのCuneiformへの移植 OCRシステムで成功しました。
利用可能なバイナリパッケージがないようです。ソースからビルドする必要があります。 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メタデータは保持されません。
pdftotext が機能するかどうかを確認します。マシンにない場合は、poppler-utilsパッケージをインストールする必要があります
Sudo apt-get install poppler-utils
pdf toolkit の使用法も見つかるかもしれません。
PDFソフトウェアの完全なリスト ここ ウィキペディアで。
編集:あなたがOCR機能を必要とするので、別の方法を試す必要があると思います。 (つまり、OCRを実行するLinux pdf2textコンバーターが見つかりませんでした)。
PDFを画像に変換
gs: コマンドの下 は、複数ページのpdfを個々のtiffファイルに変換する必要があります。
gs -SDEVICE = tiffg4 -r600x600 -sPAPERSIZE = letter -sOutputFile = filename_%04d.tif -dNOPAUSE -dBATCH-ファイル名
ImageMagikユーティリティ :SuperUserサイトには、ImageMagikの使用に関する他の質問があり、変換を行うのに役立ちます。
foo.pdf foo.pngを変換
OCRを使用して画像をテキストに変換します
ウィキペディアの OCRソフトウェアのリスト から取得
Google docs します now OCRを使用して、アップロードした画像/ pdfドキュメントをテキストに変換します。私はそれで大成功を収めました。
彼らは巨大な Google Books プロジェクトで使用されているOCRシステムを使用しています。
ただし、サイズが2 MBのPDFのみが処理のために受け入れられることに注意する必要があります。
更新
1。試してみるには、<2MBのPDFをウェブブラウザからGoogleドキュメントにアップロードしてください。
2。アップロードしたドキュメントを右クリックして、[Googleドキュメントで開く]をクリックします。
... Googleドキュメントはテキストに変換され、同じ名前の新しいファイルに出力されますが、Googleドキュメントタイプは同じフォルダにあります。
pypdfocr
を使用するのが最善で最も簡単な方法です。PDFは変更されません。
pypdfocr your_document.pdf
最後に別のyour_document_ocr.pdf
検索可能なテキストを使用して、希望する方法で。アプリは画像の品質を変更しません。オーバーレイテキストを追加して、ファイルのサイズを少し大きくします。
pypdfocr
はサポートされなくなりました 2016年以降 、そして維持されていないためにいくつかの問題に気づきました。 ocrmypdf
( module )は同様の働きをし、次のように使用できます。
ocrmypdf in.pdf out.pdf
インストールするには:
pip install ocrmypdf
または
apt install ocrmypdf
Geza Kovacsは、Jukkaが提案したように、基本的にはhocr2pdf
を使用するスクリプトであるUbuntuパッケージを作成しましたが、セットアップが少し高速になります。
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/
PDFBeads はうまく機能します。このスレッド「 スキャンした画像を1つに変換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 Library は、ほとんどのバージョンのLinuxで動作します。 PDF入力および出力を検索PDFとして取得できます。
商用パッケージです。 Linux用のAsprise OCR SDKはこちら の無料コピーをダウンロードして、次のように実行します。
aocr.sh input.pdf pdf
注:スタンドアロンの「pdf」は出力形式を指定します。
免責事項:私は上記の製品を製造している会社の従業員です。
= Apache PDFBox を試して、PDFファイルからテキストコンテンツを抽出します。画像がPDFファイルに埋め込まれている場合は、 ABBYY FineReader Engine CLI for Linux テキストを抽出します。