Windows Metafile(WMF)は、Microsoft が開発したグラフィックスファイル形式で、ベクトル画像データとビットマップ画像データの両方を格納するコンテナとして機能します。PDF開発において、WMFファイルは、Windowsベースのドキュメントを変換する際や、Microsoft アプリケーションからのグラフィックスをPDF形式に埋め込む際によく遭遇します
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
。Windows環境からのコンテンツを処理するドキュメント変換パイプラインに携わる開発者にとって、WMFの理解は不可欠です。
WMFは、画像をWindows Graphics Device Interface(GDI)への一連の関数呼び出しとして保存する16ビットのグラフィックス形式です。ピクセルデータを保存するJPEGやPNGなどの純粋なラスター形式や、SVGのような純粋なベクトル形式とは異なり、WMFは同一ファイル内にベクトルグラフィックス(線、曲線、図形)とラスター画像の両方を含むことができます。この形式は本質的に、元のグラフィックを再現するために再生可能な描画コマンドのシーケンスを記録します。
WMFは、その後継となるEnhanced Metafile(EMF)とは異なります。EMFは32ビット形式であり、拡張された機能とより優れたカラーサポートを提供します。両形式ともGDI呼び出しを記録するという同じ基本原理を使用していますが、EMFは改善された機能を提供し、現代のアプリケーションでは一般的に推奨されています。しかし、WMFはレガシーシステムや古いドキュメント形式で広く使用されているため、依然として関連性があります。
PDF開発者にとって、WMFのサポートは、特にMicrosoft Officeドキュメント、レガシーWindowsアプリケーション、またはエンタープライズコンテンツ管理システムを処理するドキュメント変換ツールを構築する際に重要です。多くの古いドキュメントやテンプレートにはWMFグラフィックスが含まれており、ドキュメント生成ワークフロー中にPDF互換形式へ正確に変換する必要があります。
Word spacing(Tw)は、PDFのテキスト状態パラメータの一つで、テキスト文字列内の単語間に挿入される水平方向の追加スペース量を制御します。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で定義されているように、word spacingはcharacter spacingと連携してページ上のテキストの正確な配置を制御します。このパラメータはスペース文字(ASCII コード32)のみに影響し、スケーリングされていないテキスト空間単位で測定されます。
Word spacingは、PDF文書内でテキストをレンダリングする際に単語間に追加される余分なスペースを指定する数値です。PDFのテキストレンダリングモデルにおいて、word spacingはcharacter spacingとは異なります。character spacing(Tc)が文字列内のすべてのグリフに影響するのに対し、word spacingは単語区切り文字(通常はスペース文字)のみに適用されます。word spacing値は、フォントで定義されたスペース文字の標準幅に加算され、両端揃えのテキスト、タイポグラフィの調整、または特定のレイアウト要件を実現します。Word spacingはPDFコンテンツストリーム内のTwオペレータを使用して設定され、別のTwオペレータによって変更されるか、グラフィックス状態がリセットされるまで有効です。
PDFの生成や操作を行う開発者にとって、word spacingを理解することはいくつかの理由から不可欠です。第一に、適切なword spacing制御はテキストの両端揃えアルゴリズムにとって重要です。左右の余白を揃えるには、テキスト行全体でword spacingを動的に調整する必要があります。第二に、PDFからテキストを抽出または解析する際、word spacing値はテキストの解釈方法と単語境界の位置に影響を与え、検索機能とコンテンツ抽出の精度に影響します。第三に、アクセシビリティの観点では、word spacingが過度に大きいと認知障害を持つユーザーの可読性を損なう可能性があるため、
(
Citation: N.A., 2014
(N.A.).
(2014).
Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1)
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/64599.html
)
などの標準に準拠したアクセシブルなPDFを生成する際には、これらの値を監視することが重要です。最後に、プログラムによるPDFテキストの再現や編集では、視覚的な忠実性を維持するためにword spacing値を理解し、場合によっては変更する必要があります。
XML Forms Architecture(XFA)は、PDF文書内でインタラクティブフォームを定義するために歴史的に使用されてきた、独自仕様のXMLベースのフォーマットです。従来のAcroForm技術とは異なり、XFAはフォーム構造とデータをPDFネイティブの辞書構造ではなく、XMLスキーマを使用して表現します。XFAは以前のPDFバージョンでサポートされていましたが、PDF 2.0では非推奨となりました
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
。
XML Forms Architectureは、フォームフィールドの定義、レイアウト情報、ビジネスロジックをXML形式でエンコードし、それをPDFファイル内に埋め込むフォーム技術です。XFAフォームはAcroFormとは根本的に異なるアプローチを取ります。AcroFormがインタラクティブ要素を定義するためにPDFネイティブのアノテーションやフィールドオブジェクトを使用するのに対し、XFAは視覚的なプレゼンテーションとデータ構造の両方を記述するXMLストリームとして、フォーム構造全体を定義します。XFAフォームは、静的(固定レイアウト)または動的(データやユーザー入力に基づいてフォームレイアウトが調整される)のいずれかになります。XFA仕様はAdobeによって維持されていましたが、ISO標準にはなりませんでした。これにより、PDFプロセッサー間での相互運用性が制限され、最終的にPDF 2.0で非推奨となりました
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
。
XObjectは、PDF内で再利用可能な外部オブジェクトであり、文書構造内で名前付きリソースとして存在します
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
。XObjectは、画像、Form XObject(自己完結型のコンテンツストリーム)、またはDoオペレータを使用して複数回呼び出されるPostScriptフラグメントのいずれかです。この設計により、PDFファイルはデータを複製することなく、文書全体で同じグラフィカルコンテンツを効率的に参照できます。
XObjectは、表示されるページのコンテンツストリームとは別にグラフィカルコンテンツを定義するPDFオブジェクトです。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
によれば、XObjectには3つのタイプがあります:Image XObject(ラスター画像またはビットマップ画像)、Form XObject(再利用可能なベクターグラフィックスとテキスト)、PostScript XObject(PostScript言語フラグメント、PDF 2.0では非推奨)。ページのコンテンツストリーム内で直接描画されるインラインコンテンツとは異なり、XObjectはPDFファイル内の間接オブジェクトとして保存され、ページのリソース辞書から名前で参照されます。コンテンツストリームがDoオペレータとそれに続くXObject名に遭遇すると、PDFプロセッサはそのXObjectのコンテンツを現在のグラフィックス状態の位置に描画します。この分離により、同じXObjectを重複したコンテンツを保存することなく、異なるページで複数回呼び出すことができます。
ページラベルは、PDFビューアアプリケーションでユーザーに対してページ番号をどのように表示するかを定義する、PDFのオプション機能です。PDFドキュメントが技術的な操作のために使用する内部的な物理ページ番号(0から開始)とは異なり、ページラベルを使用することで、ドキュメントの論理構造に合わせて、ローマ数字(i、ii、iii)、10進数(1、2、3)、またはカスタムテキストプレフィックス(A-1、Chapter 1など)のような書式付きページ識別子を表示できます。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
で規定されているように、ページラベルは純粋に表示上のものであり、基礎となるページツリー構造や内部ページ参照には影響しません。
ページラベルは、PDFドキュメントのカタログ辞書内のPageLabelsエントリを通じて定義されます。このエントリには、ページインデックスをラベル辞書にマッピングする数値ツリーが含まれています。各ラベル辞書は、番号付けスタイル(10進数、ローマ数字、文字)、オプションのプレフィックス文字列、および開始値を指定します。このメカニズムにより、ドキュメントの異なるセクションで異なる番号付けスキームを使用できます。例えば、前付け部分では小文字のローマ数字(i、ii、iii)を使用し、本文では算用数字(1、2、3)を使用し、付録ではプレフィックス付きの文字(A-1、A-2)を使用するといったことが可能です。
ページラベルは、技術的な識別子ではなく説明的でユーザー向けのものである点で、物理ページインデックスとは異なります。物理ページインデックスは、PDFがナビゲーションと構造のために内部的に使用する0ベースの連続した整数であり、一方でページラベルは非連続的、非数値的であり、ドキュメントの規則に従って書式設定できます。明示的なページラベルを持たないドキュメントは、ほとんどのPDFビューアで通常1から始まる単純な連続番号を表示します。
PDF生成または操作を行う開発者にとって、ページラベルを正しく実装することは、ユーザーの期待と出版標準に合致したプロフェッショナルなドキュメントを作成するために不可欠です。ユーザーは表示されるページ番号を使用してドキュメントをナビゲートするため、表示されるページラベルと実際のコンテンツの不一致は、混乱とアクセシビリティの問題を引き起こす可能性があります。これは、異なるセクションが異なる番号付け規則に従う書籍、レポート、法的文書などの複雑なドキュメントで特に重要です。
ファイル指定(filespec)は、外部ファイルまたはPDF文書内に埋め込まれたファイルへの参照を記述するPDF辞書オブジェクトです。
(
Citation: N.A., 2020
(N.A.).
(2020).
Document management — Portable document format — Part 2: PDF 2.0
.
International Organization for Standardization
Retrieved from
https://www.iso.org/standard/75839.html
)
によると、ファイル指定は、異なるプラットフォームやファイルシステム間でファイルを参照する標準化された方法を提供し、可搬性を維持します。これらのオブジェクトには、ファイル名、場所、および埋め込まれている場合は実際のファイルデータを含む、ファイルに関するメタデータが含まれます。
ファイル指定は、PDF文書に関連付けられたファイルに関する情報のコンテナとして機能する、PDF仕様で定義された辞書構造です。この辞書は、外部ファイル(PDFの外部に保存されたファイル)または埋め込みファイル(埋め込みファイルストリームとしてPDF構造内に保存されたファイル)を記述できます。
ファイル指定は、構造化されたプラットフォーム非依存の方法でファイルを参照する点で、単純な文字列参照とは異なります。基本的な文字列がファイルパスを指定するだけであるのに対し、ファイル指定辞書には、ファイル名の複数の表現(異なるプラットフォーム用)、説明情報、文書との関係、および埋め込みファイルストリーム自体を含めることができます。辞書には通常、/Type(/Filespecに設定)、/F(ファイル名)、/UF(Unicodeファイル名)、/EF(埋め込みファイル辞書)、/Desc(説明)などのキーが含まれます。
PDFを扱う開発者にとって、ファイル指定は、外部リソースやファイル添付を含む機能を実装する際に不可欠です。ファイル指定により、PDFはソース文書、データファイル、マルチメディアコンテンツ、アクセシビリティ関連リソースなどの補足ファイルを保持できます。以下の場合、ファイル指定の理解が不可欠です: