pdftotext
論文の検索のためにNamazuでインデックスを作ろうと思い、PDFからテキストを抽出するpdftotextを導入してみた。
apt-get install xpdf xpdf-japaneseで入るpdftotext(3.00)はなぜか設定ファイルを読んでくれないらしく、(/etc/xpdf/xpdfrcも、/usr/local/etc/xpdfrcも)
Error: Couldn't find unicodeMap file for the 'EUC-JP' encoding
こんなエラーがでて日本語PDFを変換できない。
仕方ないので開発元からxpdf-3.02.tar.gzをダウンロードし、pl1、pl2パッチを当てる。
configure, make pdftotextすると、今度は無事通る。
ただpdftotext pdffile [textfile]の仕様が、textfileの指定をしない場合、拡張子をtxtに変えたファイルをpdfと同じ階層に作る、というやっかいなもののため、ラップするスクリプトを書いた。
#!/bin/sh
TMP_PATH=~/.pdf2txt_tmp
NKFTMP_PATH=~/.pdf2txt_tmp.nkf
pdftotext -enc Shift-JIS -raw "$1" "$TMP_PATH"
cat "$TMP_PATH" | sed 's/^L//g' | nkf -Z1Sw > "$NKFTMP_PATH"
# output file specified
if [ "$#" -ge 2 ]; then
cp "$NKFTMP_PATH" "$2"
else
cat "$NKFTMP_PATH"
fi
rm "$TMP_PATH"
rm "$NKFTMP_PATH"
<C-L>がなぜかファイルの末尾に出来るようなので、削除するようsedを挟む。






