Index > PDFのしおり(ブックマーク)を解析する
Sun, August 31, 2008

PDFのしおり(ブックマーク)を解析する

iText にはPDFの"しおり(ブックマーク)"を解析する機能があります。(これは便利)

ここでは、 iTextを簡単に使うために、jythonを使用します。

コード bookmark.py

import sys

import java.lang as lang
import java.io as io
import java.util as util

import com.lowagie.text as itext
import com.lowagie.text.pdf as pdf



infile=sys.argv[1]
fin=io.FileInputStream(infile)

r=pdf.PdfReader(fin)
list=pdf.SimpleBookmark.getBookmark(r);

for map in list :

    title=""
    page=""

    for key in map.keySet() :

        if key=="Title":
            title= map.get(key)

        if key=="Page":
            p=map.get(key)
            st=util.StringTokenizer(p," ")
            if st.hasMoreTokens() :
                page=st.nextToken()

    print title+" (P."+page+"-"

r.close()
fin.close()

実行結果のサンプル

http://velocity.apache.org/docbook/releases/1.0/から DocBook-Framework-1.0.pdf をダウンロードしてテストしてみました。

$ export CLASSPATH=iText-2.1.3.jar;jython bookmark.py DocBook-Framework-1.0.pdf
DocBook Framework (DBF) (P.1-
Table of Contents (P.2-
1.?Preface (P.3-
2.?Introduction (P.4-
3.?Using the Framework (P.6-
4.?Developer information (P.11-
5.?Acknowledgements (P.14-

実行方法

  1. 上記コードを bookmark.py というファイル名に保存します。
  2. 実行に必要なiText-2.1.3.jar ライブラリを iTextのサイト からダウンロードしておきます。
  3. しおり情報を調べたいPDFファイルを用意しておきます。 (ここでは、DocBook-Framework-1.0.pdf とします。)

これら全部をカレントディレクトリに配置したら、以下のようにして実行。

$ export CLASSPATH=iText-2.1.3.jar;jython bookmark.py DocBook-Framework-1.0.pdf

結果は、標準出力されます。

実行環境

Java 1.4.2 で作動テストしています。

関連エントリ

PDF文書をiTextを使って処理する...

 Twitter
follow me on Twitter
 Categories