fbpx

PDFってこうなってる? 実践でPDFの内部構造を学ぼう Part3:自作のPDFを作成する

前回はテキストエディタを使ってPDFファイルの構造を作る方法を学びました。今回はさらに一歩進んで、実際にPDFを作ってみましょう。ただし、最初に作るPDFには一つだけ問題があります。それは、実際には機能しないということです。でも心配しないでください。Acrobat PDFビューアが、問題の原因を特定するためのヒントとなるエラーメッセージを表示してくれます。このエラーメッセージを手がかりに、機能するPDFファイルを作るための基礎を学ぶことができるのです。用意するものはテキストエディタと、バイナリエディタ(16進数エディタ)だけ。私はHxDというバイナリエディタを使用しています。
Part3:自作のPDFを作成する

まず、mypdf.pdf という新しい空のファイルを作成します。ファイルが作成できたら、Adobe Acrobat Readerで開いて何と言われるか見てみます: 

「Adobe Acrobat Reader で「mypdf.pdf」を開けませんでした。ファイルの種類がサポートされていないか、またはファイルが破損している可能性があります。例えば、電子メールの添付文書として送信され、正しくデコードされなかったことなどが考えられます。」 

予想通りのメッセージですが、将来的にこのメッセージが機能しているはずのPDFから出た場合、そのPDFはいくらか問題があると確信できます。

次に、バージョン番号のみが必要なヘッダーパートを追加します:
%PDF-2.0
さらに、すべてのオブジェクトが格納されるボディセクションがあります。このセクションでは、ただ一つのオブジェクト、つまり何も入れない辞書オブジェクト(オブジェクト番号1)を持ちます。

				
					%PDF-2.0
1 0 obj<< >>
endobj
				
			

次に、クロスリファレンステーブルセクションが必要です。まずxrefキーワードが必要です。次にリストの最初のオブジェクト番号とファイル内のオブジェクトの総数を記入します。ここまでで2つのオブジェクト、ボディセクションにある1 0 objと、Part 2で説明した連結リストの先頭であるオブジェクト0があります。よって 0 2 という行になります。続くエントリにはオブジェクトに関する情報が含まれており、すべて同じ形式を取ります。

				
					xref
0 2
0000000000 65535 f
0000000010 00000 n
				
			

オブジェクト1のアドレスを10としています。各文字がバイトであるため、%PDF-2.0と改行文字を数えるのはかなり簡単ですが、確認したい場合はHxDでファイルを開き(幅を10に、数値システムを10進数に設定して簡単にします)、1 0 objの1をクリックして1 0 objの開始アドレスを取得できます。

最後に必要なのはトレーラーセクションです。startxrefと、ファイルのオブジェクト数とルートオブジェクトへの参照を含むトレーラーディクショナリが必要です。

				
					trailer<</Size 2 /Root 1 0 R>>
startxref
				
			

クロスリファレンステーブルのアドレス(xrefキーワードがバイトで始まる位置)が必要で、ここでは32です。ファイルを %%EOF で締めくくります。

				
					%PDF-2.0
1 0 obj << >>
endobj
xref
0 2
0000000000 65535 f
0000000010 00000 n
trailer <</Size 2/Root 1 0 R>>
startxref
33
%%EOF
				
			

このPDFをmypdf2.pdfとして保存します。Windows版のAcrobatでこれを開き、Ctrlキーを押しながらOKボタンを押すと別のエラーが表示されます。「dictオブジェクトを指定してください。」というメッセージが表示されるのは、値を何も入れていないためです。

Ctrlキーを押しながらOKボタンを押す。※Mac版では動作しません。

PDFアプリ開発ツール(SDK)をお探しのみなさま、効率のよい開発作業のためにJPedal、BuildVu、JDeliがきっとお役に立つことと思います。
これら3製品は無料で試用していただけますので、まずはお試しのうえ、ぜひ導入をご検討ください。
JPedal、BuildVu、JDeliのシステム開発やプログラミング、無料トライアルの情報は下記の各製品のトライアルページをご覧ください。技術的なことから費用面まで、ご質問・ご相談も各製品ページの問合せボタンからお寄せください。

    Facebook
    Twitter
    Email
    公式ブログロゴ

    製品に関する記事や開発者のブログ

    PDFファイルを扱うシステム開発・ウェブ開発に役立つ

    開発者向けPDF入門ガイド

    開発者向けPDF入門ガイド

    PDFの基礎から応用まで開発者のための入門ガイド2024年版

    PDF の仕様や活用方法など、開発者に必要な情報がコンパクトにまとめました。初めてPDFを扱う開発者にも分かりやすく、基礎から応用までカバーしているため、PDF のポテンシャルを最大限に引き出し、アプリケーション開発やドキュメント管理の効率化を図るための手引きとなるでしょう。技術的な側面に興味がある開発者だけでなく、ビジネスでPDFを有効活用したい方にもおすすめの一冊です。

    MENU
    PAGE TOP
    ロボット
    PDFソフトウェアの開発に役立つ情報をメールでお届けします