PDFXplorer 1.0.0
辞書の内容を、リスト表示できます(下図参照)
特徴:
- 各オブジェクト(Bool, Number, String, Name, Array, Dictionary, Stream, Indirect Reference)を認識します。
- 右側のリストに列挙。表示例:
- /Filter Name /FlateDecode
- /MediaBox Array [0 0 256 156 ]
- /Pages Indirect Reference 3 0 R
- 左側ツリーにも列挙。表示例:
- /Filter /FlateDecode
- /MediaBox 4 elements
- /Pages 3 0 R
- アイコン・デザインに気合が入っています。素晴らしい!
- PDF のデザインを尊重するような表示になっています:
- Name の /FlateDecode は /FlateDecode と、そのまま表示します。
- Document Structure を表示しています。つまり /Type と /Pages を表示しています。
- stream について
- /Filter /FlateDecode を解除して表示可能
- Display mode:
- Binary
- Text
- Image (DCT streams only)
- Save stream to disk でファイルに保存可能
- 編集はできません。
- 使いやすい!
- PDF ファイルの構造を忠実に表現しようとしているように感じました。
pdfbox PDFDebugger
下図参照
起動例:
java -jar pdfbox-app-3.0.0-RC1.jar debug pdfFile
特徴:
- 各オブジェクトを認識します。
- 左側のツリーには、オブジェクトの一覧を列挙します。表示例:
- Interpolate: true
- Width: 712
- Ordering: Japan1
- Encoding: Identity-H
- MediaBox: (4)
- Resources: (3) [6 0 R]
- Contents: (2) [4 0 R]
- 0: (5) [2 0 R] /T:Page
- 右側のリストには、オブジェクトの内容を表示します。
- stream について
- ページ (/T:Page とついているもの) は、ページをレンダリングします。
- 画像 (/T:XObject /S:Image つき) は、画像をレンダリングします。
- フォント (/T:Font /S:Type0 つき) は、フォントの字体一覧をレンダリングします。一覧の列:
- Code
- CID
- GID
- Unicode Character
- Glyph
- 使いやすい。
- 一部、オブジェクトの表示機能がついているのが特徴的です。
- MediaBox など、配列はツリーを展開しないと要素が見えません。
PDF Document Inspector
http://www.cheapimpostor.com/PDFInspector/macOS アプリ。未評価。
PDFedit
http://pdfedit.cz/en/pdfedit_windows.htmlWindows 版はこちらの PDFedit ではなく、TIAEditor という別物になっているようです…
iText RUPS
https://github.com/itext/rupsRUPS → Reads, Updates PDF Syntax?
下図参照:
特徴:
- PDFXplorer と大体同じです。
- iText RUPS では編集(辞書オブジェクトの中身の修正程度)ができます。
- 編集しても保存確認はしません。File → Save as... で自分で保存しましょう。
- 画面右側にナビゲーションが実装されています。
- Pages にて、特定 Page へジャンプできます。
- XRef にて、参照元の間接オブジェクトへジャンプできます。
- Stream のテキスト表示に、Graphics operators 用のシンタックスハイライトが装備されています。Text objects, Text positioning, XObjects, Path 系, Special graphics state, その他, Graphics operators 以外は黒, のような色分けかなと思いました。
peepdf
https://pypi.org/project/peepdf/0.3.2/
https://github.com/jesparza/peepdf
PDF のファイル内容を、コマンドライン上で、対話式に解析できるツールです。
Windows で peepdf を使うなら、
ネイティブの CPython を使用するよりも、
Cygwin 上の Python 3.8 を使った方が良いでしょう。
peepdf のインストール中にネイティブライブラリのビルドを必要とするようで、
これがどうも解決するのが大変なためです。