Xpdf:コマンドラインのPDFツール

TOP > Xpdf ツール


Honey Chicken

概要

フリーのPDF用ユーティリティーです。コマンドウインドウのDOS画面上でコマンドラインとして使用できます。

この手のツールではPDFtk が有名ですが、あまり知られてないのでココで少し紹介します。

 

詳細

  1. ライセンスはGPL(フリー)
  2. 機能別にEXEファイルが存在
  3. 32ビット版、64ビット版も有り
  4. Acrobatアプリ本体がなくても動作 (当たり前
  5. ドキュメントもサイトも英語 (汗
  6. コマンドラインのツールなのでVBAなどのプログラムから制御可能
  7. Windows版だけでなく、Linux、Mac 版など多数のOSに対応
  8. 最終バージョンは 2014年5月28日 とやや古いが、PDFファイルのPDFバージョンは上がってないので問題は無い、と思っている。

 

機能

EXE 単位での機能です。

  1. pdfdetach.exe :PDFにアタッチされた部分をファイルで抽出
  2. pdffonts.exe :PDFのフォント情報を表示
  3. pdfimages.exe :PDFから画像を抽出
  4. pdfinfo.exe :PDFの文書のプロパティ情報などを表示
  5. pdftohtml.exe :PDFをHTML形式に変換
  6. pdftopng.exe :PDFの各ページをPNG画像に変換
  7. pdftoppm.exe :PDFをPPM画像形式に変換
  8. pdftops.exe :PDFをPostScriptファイルに変換
  9. pdftotext.exe :PDFからテキストを抽出

「表示」と書いている部分はDOSの標準出力としてテキスト出力に切り替える事も出来ます。 
例:pdfinfo.exe  -meta  aa.pdf  >  bb.txt

 

ダウンロード

Xpdf ダウンロード サイトからダウンロードします。

xpdfbin-win-3.04.zip の部分をクリックします。

Xpdf : ダウンロード

 

インストール

ダウンロードしたファイルにはインストーラーは付いてません。適当な場所に解凍してそれで終了です。使いたいEXEファイルを目的のフォルダにコピーしても使えます。ランタイムや別途DLL等は必要ありません。

注意点としては途中のフォルダに半角の空白が入らないようにして下さい。プログラムから起動する時に不都合が出る場合があるからです。

今回は以下の様に解凍&インストールしました。

I:¥Tools¥Run¥Xpdf¥ のフォルダの下


+--bin32 ※32ビット版
|   +--pdfdetach.exe
|   +--pdffonts.exe
|   +--pdfimages.exe
|   +--pdfinfo.exe
|   +--pdftohtml.exe
|   +--pdftopng.exe
|   +--pdftoppm.exe
|   +--pdftops.exe
|   +--pdftotext.exe
+--bin64 ※64ビット版
|   +--pdfdetach.exe
|   +--pdffonts.exe
|   +--pdfimages.exe
|   +--pdfinfo.exe
|   +--pdftohtml.exe
|   +--pdftopng.exe
|   +--pdftoppm.exe
|   +--pdftops.exe
|   +--pdftotext.exe
+--doc ※ドキュメント類
|   +--pdfdetach.txt
|   +--pdffonts.txt
|   +--pdfimages.txt
|   +--pdfinfo.txt
|   +--pdftohtml.txt
|   +--pdftopng.txt
|   +--pdftoppm.txt
|   +--pdftops.txt
|   +--pdftotext.txt
|   +--sample-xpdfrc
|   +--xpdf.txt
|   +--xpdfrc.txt
+--ANNOUNCE
+--CHANGES
+--COPYING
+--COPYING3
+--INSTALL
+--README

 





日本語の言語ファイルのインストール

以下は pdfinfo.exe でPDFの情報を表示した時です。既に日本語の言語ファイルをインストールした後の場合です。Title(タイトル) や Subject(サブタイトル)が日本語表示になっています。

Xpdf:日本語の言語ファイルのインストール

日本語の言語ファイルがインストールされて無いと以下の様になります。英数字以外の日本語は非表示になってしまいます。

Xpdf:日本語の言語ファイルのインストール

 

以下に日本語の言語ファイルのインストール方法を説明します。

なお、結構面倒な作業なのでここの部分が必要無い環境、又は日本語文字は無くても構わない時はスキップしても結構です。また、後でゆっくりと時間が出来た時でも構いません。

 

ダウンロード

ココ から以下の xpdf-japanese.tar.gz ファイルをクリックしてダウンロードします。

Xpdf:日本語の言語ファイルのインストール

xpdf-japanese.tar.gz を適当なフォルダに解凍します。解凍すると以下の様なファイルが出てきます。

xpdf-japanese.tar.gz
  
+--xpdf-japanese
    +--CMap
    |   +--78-EUC-H
    |   +--78-EUC-V
    |   +--78-H
    |   +--78ms-RKSJ-H
    |   +--78ms-RKSJ-V
    |   +--78-RKSJ-H
    |   +--78-RKSJ-V
    |   +--78-V
    |   +--83pv-RKSJ-H
    |   +--90msp-RKSJ-H
    |   +--90msp-RKSJ-V
    |   +--90ms-RKSJ-H
    |   +--90ms-RKSJ-UCS2
    |   +--90ms-RKSJ-V
    |   +--90pv-RKSJ-H
    |   +--90pv-RKSJ-UCS2
    |   +--90pv-RKSJ-UCS2C
    |   +--90pv-RKSJ-V
    |   +--Add-H
    |   +--Add-RKSJ-H
    |   +--Add-RKSJ-V
    |   +--Add-V
    |   +--Adobe-Japan1-0
    |   +--Adobe-Japan1-1
    |   +--Adobe-Japan1-2
    |   +--Adobe-Japan1-3
    |   +--Adobe-Japan1-4
    |   +--Adobe-Japan1-5
    |   +--Adobe-Japan1-6
    |   +--Adobe-Japan1-UCS2
    |   +--EUC-H
    |   +--EUC-V
    |   +--Ext-H
    |   +--Ext-RKSJ-H
    |   +--Ext-RKSJ-V
    |   +--Ext-V
    |   +--H
    |   +--Hankaku
    |   +--Hiragana
    |   +--Katakana
    |   +--NWP-H
    |   +--NWP-V
    |   +--RKSJ-H
    |   +--RKSJ-V
    |   +--Roman
    |   +--UniJIS2004-UTF8-H
    |   +--UniJIS2004-UTF8-V
    |   +--UniJIS2004-UTF16-H
    |   +--UniJIS2004-UTF16-V
    |   +--UniJIS2004-UTF32-H
    |   +--UniJIS2004-UTF32-V
    |   +--UniJISPro-UCS2-HW-V
    |   +--UniJISPro-UCS2-V
    |   +--UniJISPro-UTF8-V
    |   +--UniJIS-UCS2-H
    |   +--UniJIS-UCS2-HW-H
    |   +--UniJIS-UCS2-HW-V
    |   +--UniJIS-UCS2-V
    |   +--UniJIS-UTF8-H
    |   +--UniJIS-UTF8-V
    |   +--UniJIS-UTF16-H
    |   +--UniJIS-UTF16-V
    |   +--UniJIS-UTF32-H
    |   +--UniJIS-UTF32-V
    |   +--UniJISX0213-UTF32-H
    |   +--UniJISX0213-UTF32-V
    |   +--UniJISX02132004-UTF32-H
    |   +--UniJISX02132004-UTF32-V
    |   +--V
    |   +--WP-Symbol
    +--add-to-xpdfrc
    +--Adobe-Japan1.cidToUnicode
    +--EUC-JP.unicodeMap
    +--ISO-2022-JP.unicodeMap
    +--README
    +--Shift-JIS.unicodeMap

 

インストール

今回は32ビット版EXEのみを対象にします。「sample-xpdfrc」と「add-to-xpdfrc」の2つのファイルを使って編集し、それを元に「I:¥Tools¥Run¥Xpdf¥bin32¥xpdfrc」ファイルを作成します。

① 言語ファイルのxpdf-japanese フォルダごとを I:¥Tools¥Run¥Xpdf¥bin32¥ フォルダにコピーします。

② 「I:¥Tools¥Run¥Xpdf¥bin32¥xpdf-japanese 」フォルダを「I:¥Tools¥Run¥Xpdf¥bin32¥japanese 」にリネームします。

③ 「I:¥Tools¥Run¥Xpdf¥doc¥sample-xpdfrc 」ファイルを「I:¥Tools¥Run¥Xpdf¥bin32¥ 」フォルダの下にコピーします。そしてファイル名を「sample-xpdfrc」から「xpdfrc」にリネームします。

④ その「xpdfrc」ファイルをメモ帳で開いて以下の箇所を変更します。頭の # を削除して、「UTF-8」を「Shift-JIS」に変更します。

変更前: #textEncoding        UTF-8

変更後: textEncoding        Shit-JIS

一旦、そのままでファイルを上書き保存します。

⑤ 「I:¥Tools¥Run¥Xpdf¥bin32¥japanese¥add-to-xpdfrc」ファイルをメモ帳で開きます。中のファイルのパス情報のサンプルが有ります。UNIXの形式です。今回はWindows 形式のjapanes フォルダに修正します。

変更前:「/usr/local/share/xpdf/japanese/」

 

 

変更後:「I:¥Tools¥Run¥Xpdf¥bin32¥japanese¥」 ※ \ では無く ¥ に変更します。

⑥ 上記の結果は元のファイルに保存はしません。全てを一旦クリップボードにコピーします。それを「I:¥Tools¥Run¥Xpdf¥bin32¥xpdfrc」ファイルをメモ帳で開いて、最後の部分に貼り付けます。

⑦ 以下が内容です。 ※ \ では無く ¥ に変更します。

本当は1桁目に「#」が付いている行はコメント扱いなので無くてもイイんですが。

 

注意

但しメタデータの日本語文字の部分は文字化けを起こします。でも既にその前のTitle(タイトル) や Subject(サブタイトル)で日本語表示が有るので、ソチラを使えばイイと思います。

Xpdf:日本語の言語ファイルのインストール

 

使い方

いくつかの簡単に使い方を上げてみます。

① コマンドウインドウのDOS画面上でコマンドラインとして使用

  1. Dos画面の開き方(1)
    1. Winキー + R
    2. CMD でEnter
        
  2. Dos画面の開き方(2)
    1. エクスプローラーで開きたいフォルダをマウスでクリック
    2. 更に Shif キー押しながら + マウスで右クリック
    3. ポップアップメニューから「コマンドウインドウをここで開く(w)」を選択

Xpdf : pdfinfo.exe をコマンドラインで実行

上記の状態からEXEを起動します。

 

② VBAからShell 関数で起動

以下はサンプルです。

例:test1.pdf のメタ情報をテキストファイル test1.txt に出力する。

 

サンプル

  1. Xpdf : PDFのセキュリティ情報を取得するVBA関数

 

技術メモ

今後必要になるかもしれない情報をメモして置きます。

  1. pdfinfo.exe でメタデータの読み込みについて
    パスワードが掛かっているPDFもXMLフォーマットは異なるが
    dc:format='application/pdf' の形でdc:formatの値も取得できる。
      
  2. pdftotext.exe の使用例
    pdftotext  -enc  EUC-JP  test_1.pdf  test_1.txt
    pdftotext  -enc  Shift-JIS  test_1.pdf  test_1.txt

 

Xpdf の今後の公開配布について(予想

最終バージョンは 2014年5月28日 とやや古いです。今後のバージョンアップは望めないと思われます。理由としては Xpdf をベースにした機能アップバージョン(フォーク版)として Poppler が公開されています。Poppler は他のソフトでも利用され、今後もバージョンアップが期待されています。よって Xpdf はPoppler に移行したと見受けられるので、開発は終了と結論しました。

但し最終バージョンの 3.04 は現在(2016/6/19)でも公開されています。このバージョンに関する脆弱性の報告は見当たらないです(:正確には見つけられなかった)。3.01 では脆弱性が過去に報告されていますが現時点ではその3.01バージョンは公開されてません。

 

Poppler について

現時点(2016/6/19)での考えです。今でもバージョンアップが繰り返されています。しかし残念な事にソースは公開されていますが、各OS単位でのバイナリー版が公式サイトで公開されていません。EXEのWindows版も公式サイトで公開されてません。よって自分でソースをビルドするか、他の人がビルドした物を使うしか手がない状態です。

個人で Windows版のEXEを公開しているサイトは有ります。Windows 10 64ビット上で試用してみたところ、一部は正常に動作しますが、幾つかがメモリエラーを起こしてしまいました。仮に当PC環境だけの問題としても検証できない以上は使えません。

時期は未定ですが MinGW でのビルド・アタックを予定しています。

 

Xpdf と Poppler の違い

簡単に言えば、安定したWindows版EXEが有るのがXpdf 、無いのがPoppler と言うことになります。但し、時間がこれを逆にするのは間違いないです。現時点(2016/6/19)で。

それと1つのEXEが動くのにXpdf は800kB~1.7MBの単体で動くにも関わらず、Poppler は関連するDLLが18MBも一緒に動作します。つまりPoppler は10倍ものメモリを使って動作することになります。環境と処理件数にもよりますが、こちらでの計測で処理時間はPoppler が4倍近い時間が掛かっています。これも違いの1つですネ。

以上。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


出来るだけ早く返答する様には心がけています。
が、遅くなる時もありますのでご了承ください。


SAMURAI Plugin

コメントをする時は最低でも以下をお願いします。

  • OS名 バージョン
  • Acrobat バージョン
  • ツール(Excel等) バージョン