UNIX pdftotextでPDF内の文字を取得

popplerライブラリをインストール

# yum install poppler poppler-utils

pdftotextのオプションコマンド

# pdftotext --help
pdftotext version 0.12.4
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
  -raw              : keep strings in content stream order
  -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
  -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

基本は下記コマンドでPDFの文字列が同フォルダに作成される。

# pdftotext -raw hogehoge.pdf hogehoge.txt

指定したページの文字列を取得する場合は -f (page) -l (page) で取得

# pdftotext -raw -f 3 -l 2 hogehoge.pdf

PDFの情報を取得したい場合は、pdfinfoコマンド

# pdfinfo hogehoge.pdf
Title:          
Author:         author
Creator:        PScript5.dll Version 5.2.2
Producer:       GPL Ghostscript 8.15
CreationDate:   Fri Oct 30 19:00:00 2015
ModDate:        Fri Oct 30 19:00:00 2015
Tagged:         no
Pages:          5
Encrypted:      no
Page size:      595 x 842 pts (A4)
File size:      1000 bytes
Optimized:      no
PDF version:    1.4

ということでPDFをページごとの文字列を取得する場合は下記のファイルを作成して みた。

pdftotxt.sh
#!/bin/sh

file=$@
pages=`pdfinfo ${file} | grep Pages | awk '{ print $2 }'`
i=0
while [ $i -ne $pages ]
do
	i=`expr 1 + $i`
	pdftotext -raw -f ${i} -l ${i} ${file} ${file}-${i}.txt
done
# pdftotxt.sh hogehoge.pdf

参考 - http://katzplus.com/centos-6/小ネタ/pdftotext-でpdf内の文字情報取得/

Home | Permalink