Font subset
Font subsetは、PDF文書内に埋め込まれるフォントの一種で、元のフォントの完全な文字セットではなく、文書内で実際に使用されているグリフ(文字の形状)のサブセットのみを含みます。
Font subsetは、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
)
によると、font subsetは通常、元のフォント名の前に6文字のアルファベットプレフィックスとプラス記号を付けた一意の識別子で識別されます(例:ABCDEF+Helvetica)。この技術により、文書の視覚的な外観とテキストレンダリング品質を維持しながら、ファイルサイズを大幅に削減できます。
Font subsettingは、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 ) では、サブセット化されたフォントは、元のフォント名の前に付加される、6文字の大文字(AからZ)とプラス記号からなる一意のタグで識別されることが求められています。この命名規則により、複数の文書が同じフォントの異なるサブセットを埋め込んでいる場合でも、結合や処理の際に競合が発生しないことが保証されます。
複数の言語や特殊文字をカバーする数千のグリフを含む完全な埋め込みフォントとは異なり、font subsetには数十個のグリフのみが含まれることがあります—その特定のPDF文書に存在するテキストをレンダリングするのに必要な分だけです。たとえば、文書がArialフォントで「Hello World」という文字のみを使用している場合、サブセットにはそれらの特定の文字形状のみが含まれ、埋め込みフォントデータを潜在的に数メガバイトからわずか数キロバイトに劇的に削減できます。
Font subsettingは、PDFファイルサイズに直接影響を与えます。これは、帯域幅やストレージが懸念事項となるWeb配信、モバイルアプリケーション、文書管理システムにとって重要です。PDF生成ライブラリを扱う開発者にとって、font subsettingを理解することは、テキスト品質や検索性を犠牲にすることなく文書サイズを最適化するのに役立ちます。
アクセシビリティの観点から、適切に実装されたfont subsetは、文書がアクセス可能であり続け、スクリーンリーダーや支援技術のためにテキストが抽出可能であり続けることを保証します。これはPDF/UA準拠 ( 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を生成するエンタープライズアプリケーションでは、font subsettingによる累積的なストレージ削減効果は大きくなります。さらに、ファイルサイズが小さいほどネットワーク経由での転送が高速になり、Webベースの文書ビューアーやダウンロードシナリオでのユーザーエクスペリエンスが向上します。
PDF作成ツールが文書を処理する際、すべてのテキストコンテンツを分析して、各フォントからどのグリフが実際に使用されているかを判断します。その後、ツールは元のフォントファイルからそれらの特定のグリフ定義のみを抽出し、この縮小されたフォントプログラムをPDFに埋め込みます。サブセットには、テキストを正しくレンダリングおよび検索するために必要なグリフのアウトライン(形状)、メトリクス(間隔情報)、エンコーディング情報が含まれます。
6文字のプレフィックスは、各font subsetインスタンスの一意の識別子を作成するために生成されます。これにより、同じベースフォントが複数の文書で異なる方法でサブセット化され、後でマージされた場合でも、各サブセットが独自のアイデンティティとグリフマッピングを維持することが保証されます。プレフィックスは通常ランダムに生成されますが、AからZの大文字のみで構成される必要があります。
PDFファイル構造には、これらのサブセット化されたフォントを参照するフォント辞書が含まれており、BaseFontエントリにはプレフィックス付きの名前が含まれ、FontDescriptorには実際のフォントプログラムデータが含まれます。文字からグリフへのマッピングは、エンコーディングテーブルまたはCMapリソースを通じて保持され、限定されたグリフセットにもかかわらず、テキスト抽出と検索が正しく機能することが保証されます。
ほとんどのPDF生成ライブラリはfont subsettingを自動的に処理しますが、開発者は完全なフォントまたはサブセットを埋め込むかを制御したり、閾値を設定したり(「グリフの50%未満が使用されている場合はサブセット化する」など)するオプションを持つ場合があります。これらのオプションを理解することは、特定のユースケースに対してファイルサイズとフォントの完全性のバランスを最適化するのに役立ちます。
- Embedded font – 一貫したレンダリングをすべての表示プラットフォームで保証するために、PDF文書内に含まれる完全なフォントファイル
- Glyph – 特定のフォントにおける文字の視覚的表現または形状
- Font descriptor – メトリクス、フラグ、埋め込みフォントプログラムデータを含む、フォントに関するメタデータを含むPDFオブジェクト
- CMap – 文字コードを特定のグリフに変換するために使用される、PDFフォント内の文字からグリフへのマッピングテーブル
- Type 1 font – PDFに一般的に埋め込まれるPostScriptフォント形式で、ファイルサイズを削減するためにサブセット化できる
- (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
- (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
