John Whitington「PDF構造解説」オライリージャパン 村上雅章訳
本書を先頭から読み進めるだげで、核となる概念を効率よく吸収でき、PDFというフォーマットの内部構造を理解できるようになります。そしてpdftk というフリーウェアの力を借りることで、テキストエディタを使って手作業でPDFファイルを作成したり、プログラムから直接PDFファイルを出力できるようにもなります。
――訳者まえがき
【どんな本?】
PDF(Portable Document Format)は、文書形式の一つだ。主に印刷物など、レイアウトが決まった文書に向く。Adobe Systems が開発し、2008年7月に ISO 32000-1 として国際規格となった。
インターネット上でも、官公庁が公開する資料や、一般に配布する申請用紙などで使われている。また、Microsoft Word や Adobe Photoshop などのコンピュータで作った文書を書籍化する際は、PDF で入稿する場合が多い。
普及が進む PDF だが、その構造を知るのは難しい。公開の仕様書は膨大な頁数で、理解するには多くの前提知識が必要だ。この本は、「とりあえず大雑把にPDFの概略を掴みたい」という人向けに、「PDFとは何か」「どんな要素を持っているか」「どんな形式で記述しているか」を解説する。
【いつ出たの?分量は?読みやすい?】
原書は PDF Explained, by John Whitington, 2012。日本語版は2012年5月22日初版第1刷発行。単行本ソフトカバー横一弾組みで本文約219頁。9ポイント37字×32行×219頁=約259,296字、400字詰め原稿用紙で約649枚だが、サンプル・コード/サンプル出力/イラスト/表などを多数収録しているので、実際の文字数は6~7割ほど。
日本語の文章は少々堅い。オライリーの翻訳本では平均的なレベルかな? 内容の難しさは、評価がややこしいので後述。当然ながら、これ一冊でPDFの全てを賄う本ではない。詳しく知りたければ、正規のドキュメントを読もう。また、オライリーの本だけあって、プログラミングの経験がないと辛い。
【構成は?】
1章~4章は必ず読もう。全体の基礎となる部分だ。5章以降は、気になる所だけを拾い読みすればいい。
|
|
|
【感想は?】
以下三つの条件を全て満たす人向けの本だ。
- PDFに興味がある。
- プログラミングの経験がある。
- 文字や図形の描画について、多少の知識がある。
加えて、できれば Adobe Illustrator を使い込んでいると、感覚を掴みやすいだろう。
「PDFに興味がある」といっても、その程度は様々だ。だいたい、次の三段階に分かれるだろう。
- 「PDFとは何か」を知りたい
- 「PDFで何ができるか」を知りたい
- 「ソレはどうやればいいのか」を知りたい
後の方ほど、細かく詳しい解説が必要になる。この本は、2. と 3. の中間あたりまでを満たす内容だ。「PDFで何ができるか」は、だいたい見当がつく。だが、実際にPDFを扱うプログラムを作るには、Adobe Systems から分厚い仕様書を手に入れる必要がある。
基本的に「ザッと軽く流し読みして、細かい所は Adobe の仕様書を読んでね」という本である。これ一冊でPDFの全てを賄う本ではない。また、プログラミングの経験がないと、読んでもナニを言ってるのか見当もつかないだろう。B木は、まあわからなくても大きな問題はないだろうが、「相互参照テーブル」がわからないと、かなり厳しい。
「軽く流し読み」が前提の本とはいえ、それぞれの章は、相応の前提知識が必要だ。
2章~3章では、少なくともASCIIとUnicodeの違いがわかる程度には文字コードの知識が必要である。さすがに16進ダンプをスラスラ読める必要はないが、0x20と聞いて「ASCIIの空白ね」と分かる程度には知らないとマズい。少なくとも、テキスト・ファイルとバイナリ・ファイルの違いは分かっている必要がある。
「5章 グラフィックス」では、「マイター結合」だの「ワインディング規則」だの「カラースペース」が出てくる。これらは Adobe Illustrator を使い慣れていたり、PostScript を知っていれば、雰囲気を掴みやすい。つかCTM(Current Transformation Matrix)がピンと来る人は滅多にいない…いや、CGの世界じゃ常識なのかな?
「6章 テキストとフォント」も、相当に突っ込んだ話が次々と出てくる。「レディング」「カーニング」「グリフ」…。文書を作る際に、Microsoft Wrod ではなく、Adobe InDesign や Quark XPress を使う人向けの内容である。
そんなわけで、全部を真面目に通して読む人は、滅多にいないだろう。大半の人は、1~4章を軽く流し読みして、5章以降は意味不明な所を飛ばしながら読む、そんな読み方になると思う。というか、全体を完全に理解しながら読める人は、素直に Adobe から正規の文書を手に入れた方がいい。
私は「どうせ PostScript+αだろう」と思っていたんだが、だいぶ違うので驚いた。ラスタ画像がなきゃテキスト・ファイルな PostScript に比べ、PDFはヘッダから ox80 以上のバイトが出てくる。バイナリとテキストが混在した、ややこしい形式なのだ。
単純な頁の並びかと思っていたが、終端近くに「各オブジェクトのバイト・オフセット」が入ってるし。これじゃテキトーに中身を入れ替えたら、ズレて使い物にならなくなるじゃん←ナニをするつもりだw いや書き換えたいじゃん、できれば sed や awk とかのコマンド一発で←をい
「PDFなら文字の位置とかもズレないよね」と思っていたが、この本を読む限り、ズレる可能性は充分残ってるっぽい。
というのも、各文字の送りなどはフォントに依存するんで、表示または印刷する環境に、必要なフォントがなかったり、フォントのバージョンが違ってたりすると、悲劇が起きる可能性はある。素直にPDFにフォントを埋め込んでおけば問題ないんだけど、日本語はフォント情報が膨大だしなあ。現場じゃどうやってるんだろ?
まあいい。全般として、初心者向けとしては詳しすぎるしマニアックすぎ、プロ向けとしては詰めが甘い本である。プロが Adobe の仕様書を読む前に、全体の雰囲気を掴むために流し読みする、といった位置づけの本だろう。
【関連記事】
- Andy Oram, Greg Wilson編 Brian Kerninghan, Jon Bentry, まつもとゆきひろ他著「ビューティフルコード」オライリージャパン 久野貞子,久野靖訳 1
- David Flanagan「JavaScript 第六版」オライリージャパン 村上列訳
- Jesse Liberty, Brian MacDonald「初めてのC# 第2版」オライリー・ジャパン 日向俊二訳
- Eric.A.Meyer「CSS完全ガイド第2版 CSS2&CSS2.1対応」オライリージャパン 株式会社クイープ訳
- Shelley Powers「初めてのJavaScript 第2版」オライリージャパン 武舎広幸・武舎るみ訳
- リー・コープランド「はじめて学ぶソフトウェアのテスト技法」日経BP社
- 書評一覧:科学/技術
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- サミュエル・ウーリー「操作される現実 VR・合成音声・ディープフェイクが生む虚構のプロパガンダ」白揚社 小林啓倫訳(2021.07.11)
- ココログ:記事編集で余分な改行が入る→初期設定を通常エディタにする(2019.10.10)
- Q.Ethan McCallum「バッドデータ ハンドブック データにまつわる問題への19の処方箋」オライリージャパン 磯蘭水監訳 笹井崇司訳(2019.06.07)
- ココログ:リンク切れ一覧と旧URL一覧と公開記事URL一覧を突き合わせるOpenOfficeCalc(2018.11.18)
- ココログ:古い「カテゴリ別書評一覧」から各記事の旧URL 一覧を作るVBScript(2018.11.15)
「書評:科学/技術」カテゴリの記事
- 宮原ひろ子「地球の変動はどこまで宇宙で解明できるか 太陽活動から読み解く地球の過去・現在・未来」化学同人DOJIN文庫(2023.09.19)
- 伊藤茂編「メカニズムの事典 機械の素・改題縮刷版」理工学社(2023.08.21)
- マイケル・フレンドリー&ハワード・ウェイナー「データ視覚化の人類史 グラフの発明から時間と空間の可視化まで」青土社 飯嶋貴子訳(2023.08.08)
- ジェフリー・S・ローゼンタール「それはあくまで偶然です 運と迷信の統計学」早川書房 石田基広監修 柴田裕之訳(2023.06.05)
- ランドール・マンロー「ハウ・トゥー バカバカしくて役に立たない暮らしの科学」早川書房 吉田三知世訳(2023.04.20)
コメント