回答:
上記の答えに追加するために、特に、pdftotextと呼ばれるxpdf-utilsのコマンドラインツールを使用し、このツールで作成されたテキストドキュメントをgrepで検索できます。
これは次のようになります。
pdftotext document.pdf - | grep -C5 -n -i "search term"
マニュアルに詳細があります。pdftotextの唯一の欠点は、複数のファイルを同時に変換することはできないということです。この問題は、小さなbashスクリプトで克服できます。
for f in pdf_directory; do echo $f; pdftotext $f - | grep -i "search_term"; done
たとえば、互換性のないpdfファイルが原因で、pdfからテキストドキュメントを作成する際に問題がある場合は、別の問題です。
一般に、pdfエディターはグラフィカルであるため、コマンドラインは含まれていないと思います。bash(またはzsh!)を使用する場合は、ターミナルシェルを使用する必要があります。
がんばろう!
注: xpdf-utils は、 poppler-utilsの移行パッケージです。
poppler-utilsを使用できます。poppler-utilsは、PDF(Portable Document Format)ファイル用のツールスイートです。
それをインストールするには、Ubuntu Software Centerを使用するか、以下をクリックしてください。
pdfgrep
PDFファイル内の文字列またはパターンをディレクトリツリーで再帰的に検索し、一致をカウントするか、一致ごとにコンテキストを出力できます。たとえば、を再帰的に検索するにkeyword
は/some directory
、大文字と小文字を区別しません:
pdfgrep -Ri keyword /some/directory
Pdfgrepは、PDFファイル内のテキストを検索するツールです。これは、「grep」と同様に機能します。
特徴:
- 正規表現を検索します。
- 以下を含むいくつかの重要なgrepオプションのサポート:+ファイル名出力。+ページ番号の出力。+大文字と小文字を区別しないオプション。+
出現回数をカウントします。- そして最も重要な機能:カラー出力!
pdftotextは成功せずにいた理由はPDFがスキャンした画像であり、あなたは、OCRにそれらを必要とすることかもしれないが、私はすべて検索する簡単な方法を書いたpdf
ことができないのgrep
EDとOCRそれらを。
pdf
ファイルにフォントがない場合、通常は検索できません。これを知っていれば使用できますpdffonts
。
の最初の2行はpdffonts
テーブルヘッダーです。したがって、ファイルが検索可能な場合、2行以上の出力があり、これを作成することができます。
gedit check_pdf_searchable.sh
これを貼り付けて
#!/bin/bash
#set -vx
if ((`pdffonts "$1" | wc -l` < 3 )); then
echo $1
ocrmypdf "$1" "$1"_ocr.pdf
fi
実行可能にする
chmod +x check_pdf_searchable.sh
次に、ディレクトリ内のすべての検索不可能なPDFをリストします。
ls -1 ./*.pdf | xargs -L1 -I {} ./check_pdf_searchable.sh {}
またはディレクトリとそのサブディレクトリ内:
tree -fai . | grep -P ".pdf$" | xargs -L1 -I {} ./check_pdf_searchable.sh {}
また、インストールする必要があります。
sudo apt install ocrmypdf