PDFからテキストを抽出(Linux環境)

pdftotextのインストール

PDFファイルをテキストファイルに変換するには、pdftotextが便利です。Ubuntuでは以下のコマンドでインストールできます。

$ sudo apt install poppler-utils

RedHat(CentOS)系なら次のコマンドになります。AlmaLinuxやRocky Linuxなどにインストールするときに使います。

$ sudo dnf install poppler-utils

pdftotextの使い方

pdftotextの使い方はシンプルです。コマンドラインによる実行になります。

$ pdftotext file.pdf file.txt

オプションも色々と用意されています。通常はデフォルト設定で問題ないようです。

$ pdftotext --help
pdftotext version 22.02.0
Copyright 2005-2022 The Poppler Developers - http://poppler.freedesktop.org
Copyright 1996-2011 Glyph & Cog, LLC
Usage: pdftotext [options] <PDF-file> [<text-file>]
  -f <int>             : first page to convert
  -l <int>             : last page to convert
  -r <fp>              : resolution, in DPI (default is 72)
  -x <int>             : x-coordinate of the crop area top left corner
  -y <int>             : y-coordinate of the crop area top left corner
  -W <int>             : width of crop area in pixels (default is 0)
  -H <int>             : height of crop area in pixels (default is 0)
  -layout              : maintain original physical layout
  -fixed <fp>          : assume fixed-pitch (or tabular) text
  -raw                 : keep strings in content stream order
  -nodiag              : discard diagonal text
  -htmlmeta            : generate a simple HTML file, including the meta information
  -enc <string>        : output text encoding name
  -listenc             : list available encodings
  -eol <string>        : output end-of-line convention (unix, dos, or mac)
  -nopgbrk             : don't insert page breaks between pages
  -bbox                : output bounding box for each word and page size to html.  Sets -htmlmeta
  -bbox-layout         : like -bbox but with extra layout bounding box data.  Sets -htmlmeta
  -cropbox             : use the crop box rather than media box
  -colspacing <fp>     : how much spacing we allow after a word before considering adjacent text to be a new column, as a fraction of the font size (default is 0.7, old releases had a 0.3 default)
  -opw <string>        : owner password (for encrypted files)
  -upw <string>        : user password (for encrypted files)
  -q                   : don't print any messages or errors
  -v                   : print copyright and version info
  -h                   : print usage information
  -help                : print usage information
  --help               : print usage information
  -?                   : print usage information

まとめ

UbuntuやCentOSのようなlinux環境でPDFファイルからテキストを抜き出すには、コマンドラインで実行するpdftotextが便利です。使い方もシンプルで、「$ pdftotext file.pdf file.txt」のように実行します。