PDFをテキスト検索可能なPDFに変換する方法は?


20

PDFでスキャンしたドキュメントが多数あり、それらを検索できるようにしたいと考えています。どうやってやるの?

基本的に、pdfをOCRしてから、抽出したテキストを新しいpdfにブレンドする必要があります。OCR情報をPDF追加するにあるものを含む、さまざまなソリューションを試しましたが、うまくいきませんでした。

  1. pdfocr(これにより、この問題が発生します:https : //github.com/gkovacs/pdfocr/issues/7
  2. pdfsandwich(ソフトウェアセンターによると、これは貧弱なパッケージであり、インストールしないでください)
  3. OCRfeeder(ソフトウェアセンター内)はodtに適切にエクスポートしますが、pdfにエクスポートすると反応しません。
  4. Gscan2pdfは、この議論で報告されているように、すべて黒の(ただし検索可能な)画像をエクスポートします。
  5. Pdfxchangeビューアーは、500ページを超えるファイルでocrをその場で実行できるとは思いません。

知らないソフトウェアパッケージはありますか?または、これを行うスクリプトですか?


3
まだ自分で試したことはありませんが、過去にこのプロジェクトが推奨されるのを見きました。
グルタニメート

書きましたpdf2searchablepdf。に依存していtesseractます。うまくいきます。超使いやすい。こちらをご覧ください。askubuntu.com/a/1187881/327339
ガブリエルステープルズ

回答:


12

Ubuntu <16.04

グルタニメートのコメントに続いて、私は実用的な解決策を見つけました。これはOCRmyPDFスクリプトです。

git clone https://github.com/jbarlow83/OCRmyPDF
cd OCRmyPDF
sh ./OCRmyPDF.sh -h  # to see the usage

GNU parallelをインストールする必要があるというメッセージが表示された場合。(/ubuntu//a/298598/115155に続く)で行うことができます(2行目はオプションで、フレーバーとバージョンに依存します):

sudo apt-get install parallel
sudo rm /etc/parallel/config

最後に、次のコマンドを使用してPDFをOCRできます。

sh ./OCRmyPDF.sh input.pdf output.pdf  # change input and output to the files you want

コマンドが応答しないと思われる場合は、-vフラグを使用して詳細度を上げることができます(-vvまたはとして増分的に使用できます-vvv)。最初に短いPDFで結果をテストするのが最善かもしれません。次のようにPDFを短縮できます。

pdftk A=input.pdf cat A1-5 output output.pdf

Ubuntu> = 16.04

Ubuntu 16.04の時点で、OCRmyPDFはaptを通じて利用可能になりました。ただ走れ

sudo apt install ocrmypdf
ocrmypdf -h   # to see the usage

最後に、次のコマンドを使用してPDFをOCRできます。

ocrmypdf input.pdf output.pdf  # change input and output to the files you want

コマンドが応答しないと思われる場合は、-vフラグを使用して詳細度を上げることができます(-vvまたはとして増分的に使用できます-vvv)。最初に短いPDFで結果をテストするのが最善かもしれません。次のようにPDFを短縮できます。

pdftk A=input.pdf cat A1-5 output output.pdf

質問がある場合は、新しいGithubリポジトリをご覧ください


それを解決するために、あなたの答えを受け入れますか?(それが未回答のリストに載らないように)
登録ユーザー14年

ただ、sudo -H pip install git+https://github.com/jbarlow83/OCRmyPDFUbuntuの16.04のために
マーティン・トーマ

1
Ubuntu 16.10以降では、を実行できますsudo apt install ocrmypdf
エンドリス

6

@ don.joeyはocrmypdfスクリプトで回答しました。ただし、今すぐ直接インストールできます(16.10以降)。

sudo apt install ocrmypdf

次に、必要なtesseract言語をインストールする必要があります。

システムにすでにある言語をリストするには、次のように入力します。

tesseract --list-langs

紛失した場合は、インストールしてください。例えば、

sudo apt install tesseract-ocr-spa

次のコマンドを使用して、検索可能なPDF(スキャンするドキュメントによって品質が異なります)を作成できるようになりました

ocrmypdf -l 'spa' old.pdf new.pdf

もちろん、いくつかの追加オプションについては、manページを確認してください。


私の賛成をお願いします!
don.joey

4

pdfsandwichこのジョブを正確に実行します。ソフトウェアセンターで提供されているパッケージがあることは知りませんでしたが、プロジェクトのWebサイト(詳細についてはhttp://www.tobias-elze.de/pdfsandwich/を参照)でUbuntu debパッケージを提供しています現在の最新バージョン(0.1.2)を含みますが、これはどのソフトウェアセンターにも存在する可能性は低いです。

スキャンしたファイルがある場合はscanned_file.pdf、単に呼び出します

pdfsandwich scanned_file.pdf

scanned_file_ocr.pdfスキャンされたページに認識されたテキストが追加されたファイルを生成します。

既存のほとんどのソリューションと比較して、インストールされているtesseractバージョンを自動検出し、それに応じて動作を調整します。さらに、OCRプロセスの前に、スキュー補正や暗いエッジの除去などのスキャン画像の前処理を実行します。これにより、光学文字認識が大幅に向上します。

免責事項:私は開発者であるpdfsandwichため、非常に偏見があります。


素晴らしいように聞こえますが、Ubuntu 16.04でapt-getを使用してインストールされたpdfsandwichバージョン0.1.4が各文字を黒い長方形に変換するのはなぜですか?
バレンタス

1
それ以上の詳細なしで答えることは難しいです。まず、ツールの最新バージョンを使用することをお勧めします。現在のバージョンは0.1.6です。Ubuntuのdebパッケージは、Webサイトで見つけることができます。第二に、それが役に立たない場合は、オプション-verboseを使用して詳細を取得し、これらの詳細を使用してバグレポートを提出することができます。
トビアスエルツェ

私にとってはいくつかの問題。変換:error / constitute.c / IsCoderAuthorized / 408のセキュリティポリシー「PDF」で許可されていない操作を実行しようとします。そのため、imagemagick.org / script / install-source.php からダウンロードしたソースからimagemagickをインストールする必要があり、「共有ライブラリのロード中にエラーが発生しました:libMagickCore-7.Q16HDRI.so.6:共有オブジェクトファイルを開けません: "ファイルまたはディレクトリ」とこのソリューションは「sudo ldconfig / usr / local / lib」を実行することで機能しました。imagemagickのバージョンは7.0.8-56です。
pierrely

PDFの操作またはトリミングを計画している場合は、これらのユーティリティを追加する価値があります。1.(両面原稿の)左右のページを分割するpdfshuffler 2. pdftk pdfチェーンpdftkを(jarファイルとして)使用して、ファイルを偶数ページと奇数ページに別々に分割します。 2-goocanvas-2.0 gir1.2-poppler-0.18 python-pygoocanvas python-poppler python-pypdf2。pdfsandwichはおもしろく働き、ファイルサイズも10倍に縮小しました。ありがとう。また、Ubuntuの19.04スプリットとマージにpdfsam、ダウンロード後のJavaのjarファイルとして実行
pierrely

0

OCRfeederにはバグがあります

/usr/lib/python2.7/dist-packages/reportlab/pdfgen/textobject.py

436行目:

            lines = asUnicode(stuff).strip().split('\n')
# bug here, was:
#            lines = '\n'.split(asUnicode(stuff).strip())

これを変更し、それは私のために働いた


0

OS:Ubuntu 18.04

まず、次を使用してインストールtesseract-ocrします。

apt-cache show tesseract-ocr
sudo apt-get update && sudo apt-get upgrade
apt-get install tesseract-ocr --print-uris
apt-get install tesseract-ocr
sudo !!

tesseractで英語以外の言語を使用する場合は、対応するlaguageパッケージをインストールする必要があります。たとえば、ポルトガル語の場合、次のことを行う必要があります。

sudo apt-get install tesseract-ocr-por

そうしないと、エラーが発生します。

Error opening data file /usr/share/tesseract-ocr/4.00/tessdata/por.traineddata
Please make sure the TESSDATA_PREFIX environment variable is set to your 
"tessdata" directory.
Failed loading language 'por'
Tesseract couldn't load any languages!
Could not initialize tesseract.

「tesseract PDF」をグーグルで検索すると、おそらくこのやや時代遅れの投稿が見つかるでしょう。ただし、いくつかの有用なヒントが得られます。最初に.pdfファイルを変換する必要があります.tiff。実行:

convert -density 125 originalfile.pdf -depth 8 -alpha Off newfile.tiff

古くなった投稿のように、の追加を忘れるとalpha -Off、次のエラーが表示されます。

Tesseract Open Source OCR Engine v4.0.0-beta.1 with Leptonica
Error in pixReadFromTiffStream: spp not in set {1,3,4}

これで、最終コマンドを実行できます。元のPDFがポルトガル語である特定のケースでは、次のコマンドが必要です。

tesseract -l por newfile.tiff output pdf 

生成されたファイルの名前はoutput.pdf。たとえば、PDFがフランス語の場合、対応するをインストールした後tesseract-ocr-fra、次を実行します。

tesseract -l fra newfile.tiff output pdf 

目的のファイルは、再びですoutput.pdf


0

私はこれと同じ問題を抱えていたので、週末にかけてこれを書きました。試してみます; それはうまくいきます!これはの単純なラッパーtesseractです。これは、使用していますpdftoppm、それは使用しています、TIFFファイルの束の中にPDFを変換するために、tesseractそれらの上にOCR(光学式文字認識)を実行し、出力として検索可能なPDFを生成します。スクリプトが完了すると、すべての中間一時ファイルは自動的に削除されます。

ソースコード:https : //github.com/ElectricRCAircraftGuy/PDF2SearchablePDF

インストールと使用の手順pdf2searchablepdf

2019年11月11日にUbuntu 18.04でテスト済み。

インストール:

git clone https://github.com/ElectricRCAircraftGuy/PDF2SearchablePDF.git
./PDF2SearchablePDF/install.sh
sudo apt update
sudo apt install tesseract-ocr

使用する:

pdf2searchablepdf mypdf.pdf

これで、検索可能なテキストを含むmypdf_searchable.pdfというpdf ができました!

できた 現在ラッパーは完全にbashで記述されているため、Pythonに依存しません。

参照または関連リソース:

  1. PDF2SearchablePDFhttps : //github.com/ElectricRCAircraftGuy/PDF2SearchablePDF
  2. PDFをテキスト検索可能なPDFに変換する方法は?
  3. 最高の、最も簡単なOCRソリューションは何ですか?
  4. PDFから埋め込み画像を抽出する
  5. pdfsandwich見つけたばかりの代替ソフトウェアラッパー、これもチェックする価値があります!http://www.tobias-elze.de/pdfsandwich/
  6. /unix/301318/how-to-ocr-a-pdf-file-and-get-the-text-stored-within-pdf/551526#551526
  7. [PDFを画像の束に変換する方法pdftoppm] PDFから埋め込み画像を抽出する
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.