Font compression
フォント圧縮とは、PDF文書に埋め込まれたフォントデータのファイルサイズを削減するために使用される技術を指します。
フォント圧縮とは、PDF文書に埋め込まれたフォントデータのファイルサイズを削減するために使用される技術を指します。フォントは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に埋め込むことができる様々なフォント形式、つまりType 1、TrueType、OpenType、CIDFont形式を特に対象としています。圧縮プロセスは通常、フォントファイルストリーム内に格納されたバイナリフォントデータにストリーム圧縮フィルタを適用しながら、書体の構造的整合性とレンダリング特性を保持します。フォント圧縮は、文書内で実際に使用されている文字のみを含めることでフォントサイズを削減するフォントサブセット化とは異なります。圧縮は、存在するフォントデータをアルゴリズム的なエンコーディングによってサイズを削減します。
PDF生成および操作を扱う開発者にとって、フォント圧縮はアプリケーションのパフォーマンス、ストレージコスト、ユーザーエクスペリエンスに直接影響します。非圧縮のフォントは、特に複数の書体や完全なフォントセットが埋め込まれている場合、PDFファイルに数百キロバイト、場合によっては数メガバイトを追加する可能性があります。適切なフォント圧縮を実装することで、WebベースのPDF配信における帯域幅消費を削減し、クラウドストレージコストを低減し、ビューアやブラウザでの文書読み込み時間を改善できます。毎日数千のPDFを生成するエンタープライズアプリケーションにとって、効果的なフォント圧縮はインフラストラクチャの大幅なコスト削減につながります。さらに、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におけるフォント圧縮は、フォントストリームオブジェクトへの圧縮フィルタの適用を通じて機能します。最も一般的に使用される圧縮方法はFlate圧縮(zlib/deflateアルゴリズムに基づく)であり、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ライターがフォントを埋め込む際、フォントプログラムデータをストリームオブジェクトに格納し、ストリームディクショナリに/Filterエントリを追加して圧縮フィルタを適用します。通常は/FlateDecodeに設定されます。圧縮されたデータはストリーム内の元のフォントプログラムバイトを置き換えますが、ストリームディクショナリは元のフォント形式とエンコーディングに関するメタデータを保持します。PDFレンダリング時には、PDFプロセッサが自動的に圧縮フィルタを検出し、フォントストリームを展開して、フォントプログラムをレンダリングエンジンにロードします。一部のPDFジェネレータは、圧縮レベルパラメータの調整、フォント圧縮とフォントサブセット化の組み合わせ、またはフォント形式の特性に基づく特定の圧縮アルゴリズムの選択によって圧縮を最適化します。CIDFontや合成フォントの場合、圧縮はCIDFontプログラムと関連するCMapリソースの両方に適用できます。
- Font subsetting(フォントサブセット化)– 完全な文字セットではなく、文書内で使用されているグリフのみを含めることでフォントサイズを削減する技術
- Font embedding(フォント埋め込み)– 異なるシステム間で一貫したテキストレンダリングを確保するために、完全なフォントプログラムデータをPDF内に含めるプロセス
- Stream compression(ストリーム圧縮)– 様々なタイプのバイナリデータを含むストリームオブジェクトに圧縮アルゴリズムを適用するPDFの一般的な機能
- CIDFont – PDFで大規模な文字セット、特にアジア言語を表現するために使用されるフォント形式で、圧縮によって大きな恩恵を受ける
- Font descriptor(フォントディスクリプタ)– 圧縮されたフォントプログラムストリームを参照する可能性のあるフォントメトリクスと特性を含むPDFディクショナリオブジェクト
- (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
