JavaScript actionは、PDF内に埋め込まれたJavaScriptコードを実行するPDFのアクションタイプです。ユーザーインタラクションやドキュメントイベントによってトリガーされると、JavaScript actionは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
)
で定義されているように、JavaScript actionはPDF仕様で利用可能な複数のアクションタイプの1つであり、PDFドキュメント内でスクリプト機能を実現します。
JavaScript actionは、JavaScriptサポートを持つ準拠PDFプロセッサによって実行されるJavaScriptコードを含む、特定のタイプのPDFアクションオブジェクトです。ナビゲーションやフォーム送信など事前定義された操作を実行する他のアクションタイプとは異なり、JavaScript actionは埋め込まれたスクリプトを通じて柔軟でプログラム可能な動作を提供します。このアクションは、アクションタイプ「JavaScript」として定義され、実行するJavaScriptコードを含むテキスト文字列またはストリームを含んでいます。
JavaScript actionは、ボタンクリック、ページ開封イベント、フォームフィールド変更などの特定のトリガーに関連付けることができるアクションオブジェクトとして明示的に定義されている点で、他のPDFスクリプト機構とは異なります。JavaScriptコードは、PDFプロセッサのJavaScriptエンジン内で実行されます。このエンジンは、コアECMAScriptをベースとし、ドキュメント操作のためのPDF固有の拡張機能を持つJavaScriptのサブセットを実装しています。
JavaScript actionは、インタラクティブなPDFフォーム、動的ドキュメント、カスタム検証ロジックを作成する開発者にとって重要です。以下を可能にします:
JBIG2は、2値(白黒)画像専用に設計された非可逆または可逆の圧縮方式で、スキャン文書、テキストページ、線画に対して非常に効果的です。
(
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
)
で定義されているように、JBIG2はPDFで画像データをエンコードする際にサポートされる圧縮フィルタの1つです。特に複数のページに類似したシンボルやパターンが含まれる場合、CCITT Group 4などの古い方式よりも大幅に高い圧縮率を実現できます。
JBIG2(Joint Bi-level Image Experts Group 2)は、2値画像—通常は白黒の2色のみを含む画像—専用に設計された圧縮標準です。連続階調カラー画像向けに設計されたJPEGやPNGなどの汎用画像圧縮フォーマットとは異なり、JBIG2はテキストや線画の特性を活用します。このアルゴリズムは、デコードされた画像が元の画像と同一である可逆モード、または視覚的に類似したパターンをまとめて圧縮することでより高い圧縮率を実現する非可逆モードのいずれかで動作します。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
)
では、JBIG2はファイルサイズの削減が重要でありながら可読性を維持する必要があるスキャン文書に特に有用です。この標準は、パターンマッチングと置換機能を追加することで前身のJBIG1と異なり、繰り返される形状(ページ上に複数回出現する文字「e」など)を認識してより効率的に保存できます。
JBIG2Decodeは、PDFドキュメントにおいて2値(白黒)画像、特にスキャンされたテキストページやドキュメントを効率的にエンコードするために使用される圧縮フィルターです。
(
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
)
で定義されているように、このフィルターはJBIG2圧縮標準を適用し、画像品質を維持しながら従来の方法よりも大幅に高い圧縮率を実現します。JBIG2Decodeは、スキャンされたドキュメントを含むPDFファイルにおいて特に価値があり、他の圧縮方法と比較してファイルサイズを3倍から10倍削減できます。
JBIG2Decodeは、
(
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ファイル内の2値画像に対してJBIG2(Joint Bi-level Image Experts Group 2)圧縮標準を実装します。FlateDecodeなどの汎用圧縮フィルターとは異なり、JBIG2Decodeは2色のみを含む画像(通常は白と黒)に特化して最適化されており、スキャンされたドキュメント、テキストページ、線画、その他の2値コンテンツに最適です。
JPEG(Joint Photographic Experts Group)は、写真画像に広く使用される非可逆圧縮フォーマットであり、PDFドキュメントに直接埋め込むことができます。PDFでは、JPEG圧縮された画像データは通常DCTDecodeフィルタを通じて処理されます。これにより、PDFは標準的なJPEGフォーマットとの互換性を維持しながら、写真コンテンツを効率的に保存できます
(
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
)
。そのため、JPEGは、特に写真や複雑なカラー画像を含むドキュメントにおいて、PDFファイル内で最も一般的な画像フォーマットの一つとなっています。
JPEGは、離散コサイン変換(DCT)アルゴリズムを使用してファイルサイズを削減する標準化された画像圧縮方式です。人間の目に知覚されにくい画像データを選択的に破棄することで圧縮を実現します。PDFドキュメント内では、JPEG画像はストリーム辞書にDCTDecodeフィルタが指定されたImage XObjectとして表現されます
(
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
)
。PNGやLZW圧縮を使用したTIFFなどの可逆フォーマットとは異なり、JPEG圧縮はファイルサイズを小さくするために一部の画像データを永久的に削除するため、「非可逆」と呼ばれます。PDF仕様では、JPEGデータを再エンコードせずに直接保存できるため、JPEGファイルは元の圧縮形式を保持したままPDFに埋め込むことができます。これは、BMPや非圧縮TIFFなどのフォーマットとは異なります。これらのフォーマットは埋め込み時にPDF圧縮フィルタを使用してエンコードする必要があります。
JPEG 2000は、ウェーブレットベースの画像圧縮規格であり、従来のJPEGと比較して優れた圧縮効率と画質を提供します。PDF文書では、JPEG 2000画像はJPXDecodeフィルタを通じてサポートされており、開発者はより小さなファイルサイズで高品質な画像を埋め込むことができます
(
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
)
。この形式は、スケーラブルな画質、プログレッシブデコーディング、または可逆圧縮オプションを必要とするアプリケーションにおいて特に有用です。
JPEG 2000は、従来のJPEG圧縮で使用される離散コサイン変換(DCT)の代わりに離散ウェーブレット変換(DWT)を使用する画像圧縮規格です。画像を8×8ピクセルのブロックに分割する標準JPEGとは異なり、JPEG 2000は画像全体を連続的なウェーブレット変換として処理するため、ブロックノイズを排除し、高圧縮率でもより良好な画質を提供します。この形式は、非可逆圧縮モードと可逆圧縮モードの両方をサポートし、アルファチャンネルの透明度や、より多くのデータを受信するにつれて画質が向上するプログレッシブデコーディングにも対応しています。PDF仕様では、JPEG 2000ストリームはJPXDecodeフィルタによって識別され、文書構造内にImage XObjectとして埋め込むことができます
(
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
)
。
JPXDecodeは、JPEG 2000標準(ISO/IEC 15444)を使用して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
)
で定義されているように、このフィルタはプログレッシブデコード、関心領域符号化、可逆圧縮オプションなどの高度な画像圧縮機能を提供します。JPXDecodeは、従来のDCTDecode(JPEG)フィルタと比較して優れた圧縮率と画像品質を実現し、PDF ファイル内の高品質な画像コンテンツに特に有用です。
JPXDecodeは、PDF文書内のImage XObjectにJPEG 2000圧縮および展開アルゴリズムを適用するストリームフィルタです。元のJPEG標準を使用する旧式のDCTDecodeフィルタとは異なり、JPXDecodeはより高度なJPEG 2000ウェーブレットベースの圧縮方式を実装しています。このフィルタは、非可逆および可逆圧縮モード、マルチコンポーネント画像、およびDeviceGray、DeviceRGB、DeviceCMYK、ICCベース色空間を含む様々な色空間をサポートします。
JPXDecodeと他の画像フィルタとの主な違いは、離散コサイン変換ではなく離散ウェーブレット変換を使用することで、より柔軟な圧縮特性を実現している点です。JPXDecodeストリームには、JP2フォーマット内に必要なすべての色空間とコンポーネント情報が埋め込まれた完全なJPEG 2000コードストリームを含めることも、色空間とパラメータ仕様をPDF画像辞書に依存する最小限のコードストリームとすることもできます。
PDF生成や操作を行う開発者にとって、JPXDecodeは高品質画像を扱う際に大きな実用的利点を提供します。優れた圧縮効率により、視覚品質を損なうことなくファイルサイズを小さくできるため、医用画像、地理空間データ、デジタル写真、アーカイブ文書などを扱うアプリケーションにとって非常に重要です。これは、ストレージコスト、伝送帯域幅、エンドユーザーのダウンロード時間に直接影響します。
Launch actionは、リンクやボタンのクリックなどのユーザー操作によってトリガーされたときに、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
)
で定義されているように、Launch actionはPDFがオペレーティングシステムと相互作用し、PDF自体の外部にあるプログラムやドキュメントを起動するメカニズムを提供します。しかし、重大なセキュリティリスクがあるため、Launch actionは現代のPDF仕様では制限または非推奨とされており、より安全な代替手段を使用すべきです。
Launch actionは、PDFファイル内のアクション辞書で、タイプが/Launchであり、実行する外部アプリケーションまたはデフォルトアプリケーションで開くファイルを指定するものです。このアクションには、ファイルパスやアプリケーション名、オプションのコマンドラインパラメータ、起動動作を制御するフラグなどのパラメータが含まれます。Launch actionは、他のPDFアクション(PDF内をナビゲートするGoToアクションや、WebブラウザでWeb URLを開くURIアクションなど)とは異なり、ローカルのオペレーティングシステムと直接相互作用して任意のプログラムやファイルを実行します。この根本的な違いにより、Launch actionは特に強力ですが、セキュリティの観点から潜在的に危険なものとなっています。
Launch actionの理解は、PDFのセキュリティとコンプライアンスに取り組む開発者にとって重要です。現代のPDFワークフローでは、Launch actionが適切な警告や同意なしにユーザーのシステム上で悪意のあるコードを実行するために悪用される可能性があるため、通常、Launch actionを禁止するか厳しく制限します。PDF生成システムを作成する開発者は、特に公開配布やアクセシビリティコンプライアンスを目的としたPDFにおいて、出力ドキュメントにLaunch actionが誤って含まれないようにする必要があります。既存のPDFをレビューする場合や、PDFリーダーを実装する場合、開発者はLaunch actionを認識し、ユーザーへの警告表示や、セキュリティポリシーに基づく実行の完全ブロックなど、適切なセキュリティ対策を実装する必要があります。
レイヤーは、PDFドキュメントにおけるオプショナルコンテンツグループ(OCG)を指す一般的なユーザー向けの用語です。レイヤーを使用することで、ユーザーの設定、アプリケーションの設定、または閲覧コンテキストに基づいて、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用語において、ユーザーやアプリケーションが一般的に「レイヤー」と呼ぶものは、技術的にはオプショナルコンテンツグループ(OCG)として実装されています。レイヤーは、テキスト、画像、注釈、フォームフィールドなどのPDFコンテンツオブジェクトの集合を表し、これらを一つの単位として表示・非表示にすることができます。グラフィックスアプリケーションの真のレイヤーシステムでは、コンテンツが厳密なz順序または重ね順の関係を持ちますが、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
)
は、アプリケーションがユーザーにレイヤーとして提示する基盤となるOCG構造を定義しています。単一のPDF内に複数のレイヤーを設定でき、コンテンツは複数のレイヤーに同時に属することができるため、複雑な可視性の組み合わせが可能です。レイヤーという比喩は、実際にはネストされたグループ、相互排他的な可視性状態、ポリシーベースの表示ルールなどの機能を持つ高度なオプショナルコンテンツシステムを簡略化したものです。
Leadingは、PDFドキュメント内のテキスト行間の垂直方向の間隔を指す組版用語です。PDFコンテンツストリームでは、leadingはTLオペレータを使用して設定され、T*や’などのオペレータを使用して次の行に進む際に、テキスト位置が垂直方向にどれだけ移動するかを決定します。この間隔パラメータは、
(
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
)
で定義されているように、テキストコンテンツの可読性と視覚的な外観を制御するために不可欠です。
Leadingは、ユーザー空間単位(通常はポイント)で測定される数値で、連続するテキスト行のベースライン間の距離を指定します。この用語は、活字印刷において行間の間隔を広げるために鉛の帯を金属活字の間に配置していた伝統的な印刷技術に由来します。PDFでは、leadingはテキスト状態の一部として保存され、フォントサイズとは独立して設定されますが、行が重ならないようにするため、通常はフォントサイズを超える値が設定されます。CSS行高さ(フォントサイズに対する相対値)とは異なり、PDFのleadingは明示的に変更されるまで一定に保たれる絶対値です。TLオペレータがleadingを設定すると、その後のT*(次の行に移動)または’と"(次の行に移動してテキストを表示)オペレータは、この値を使用してテキストの配置に必要な垂直オフセットを計算します。
PDF生成または操作を行う開発者にとって、leadingを理解することは、いくつかの理由から重要です。第一に、不適切なleading値は、テキスト行が重なったり、離れすぎたりして、ドキュメントが読みにくくなる原因となります。第二に、PDFからテキストを抽出またはリフローする際、leading値は段落構造と行の関係を判断するのに役立ちます。第三に、
(
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
)
などの規格に基づくアクセシビリティ準拠のために、適切なleadingは支援技術がテキストフローと読み上げ順序を正しく解釈できるようにします。最後に、JavaやJavaScriptなどの言語のライブラリを使用してプログラムでPDFを生成する場合、開発者はデザイン仕様に合致したプロフェッショナルな組版を実現するために、適切なleading値を明示的に設定する必要があります。
Line capは、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
)
で定義されているように、このプロパティは線の端を平らなbutt cap、丸いround cap、または突出したprojecting square capのいずれで描画するかを決定します。Line capスタイルは、PDFコンテンツストリーム内で描画される線の視覚的外観と正確な寸法の両方に影響を与えます。
Line capは、PDFレンダリングエンジンがオープンパスストロークの終端点をどのように描画するかを指定します。PDF仕様では、3つの異なるline capスタイルが定義されています:
- Butt cap (0): ストロークは端点座標で正確に終端し、線の方向に対して垂直な平らなエッジを持ちます
- Round cap (1): ストロークは端点を超えて延長され、線幅と等しい直径を持つ半円弧が追加されます
- Projecting square cap (2): ストロークは端点を超えて延長され、線幅の半分に等しい長方形の突起が追加されます
Line capはline joinとは異なります。line joinは2つのパスセグメントが角度を持って接合する箇所の外観を制御します。Line capはパスのオープンな端点にのみ適用され、クローズドパスや中間の頂点には適用されません。Line capの設定はグラフィックス状態の一部であり、変更されるまで以降のすべてのストローク操作に影響します。