フォント埋め込みに関する調査報告 プラネットファーマソリューションズ株式会社 2019 年 05 月 31 日
注意事項 本資料の説明内容に含まれるAcrobatの挙動に関しましては 弊社担当者の推測並びに意見が含まれますので ご留意ください Acrobatの用語はAcrobat Pro 2017に準拠しています 2
目次 背景 文字表示の仕組みについて フォントの埋め込み方法 フォント埋め込みの調査結果 フォント埋め込みプラグインについて デモ 3
背景 FDA に申請する場合 日本語の申請文書に翻訳文書を添付して提出することがあります この時 日本語の申請文書もフォントのフルセット埋め込みが望ましい フォントをフルセット埋め込みするプラグインの実現可能性の調査内容と 今後の展開についてご報告いたします 4
文字表示の仕組みについて (1/6) フォントに関する用語の定義 字形情報 文字 ( フォント ) の字形 ( グリフ ) が入った集合 文字コード 文字 ( フォント ) の字形が入った場所を指し示すコンピュータ上の数値 ( 住所 ) エンコーディングスキーム ( 符号化方式 ) 字形情報と文字コードを関連付ける対応方法 5
文字表示の仕組みについて (2/6) 文字は文字コードおよび字形情報から表示される 字形情報 文字 ( フォント ) の字形 ( グリフ ) が入った集合 文字表示 文字コード 未傾き補正未傾き補正 文字 PDF( ファイルフォント ) の字形 PDFファイルが入った場所を指し示すコンピュータ上の数値 ( 住所 ) 符号化方式 (UTF-8 など ) 6 PDF ファイル
文字表示の仕組みについて (3/6) 文字表示の流れとフォント情報 OS(Windows など ) Acrobat PDF 表示領域 1 6 PDF 内部情報 テキストオブジェクト 文字コード 使用フォント / サイズ etc 2 3 基本的な流れ フォント辞書に従い 文字コードに対応する字形 ( グリフ ) を表示 OK! Acrobat フォントファイル 字形 ( グリフ ) 例 )Text etc フォント辞書 フォントタイプ フォント名 etc フォントプログラム 字形 ( グリフ ) 例 )Text etc 4 5 条件により参照先が異なる OS 内フォントファイル 字形 ( グリフ ) 例 )Text etc 7
文字表示の仕組みについて (4/6) フォント埋め込みされていない場合 ( 例 ) OS(Windows) Acrobat PDF 表示領域 No... 1 6 PDF 内部情報 テキストオブジェクト 文字コード 使用フォント / サイズ etc フォント辞書 フォント (Mac 用フォント ) etc 2 3 4? 字形が見当たらない 8
文字表示の仕組みについて (5/6) フォント埋め込みされている場合 ( 例 ) OS(Windows など ) Acrobat PDF 表示領域 OK! このケースでは埋め込まれた字形を利用する為 フォント名は機能しない 1 6 PDF 内部情報 テキストオブジェクト 文字コード (00370048005B0057) 使用フォント / サイズ etc フォント辞書 親フォントタイプ(Type0) 子フォントタイプ(CIDFontType2) フォント(MeiryoUI) エンコーディング(Identity-H) etc 5 フォントプログラム 字形 ( グリフ ) 例 )Text etc 2 3 4 エンコーディング (Identity- H) に従い 文字コード 00370048005B0057 に対応する PDF 内に埋め込まれたフォントの字形 ( グリフ ) を表示 文字コードが意味するものは フォントにより異なる 9
文字表示の仕組みについて (6/6) フォント埋め込みされている場合 ( 詳細 ) 文字コード 00370048005B0057 が表示される流れ文字コード 00370048005B0057 は Glyph ID( 字形に紐づく一意な番号 ) を意味する PDF の中に上記に対応する字形が登録されており Acrobat はこの字形を画面に表示している 16 進数 :0037 0048 005B 0057 10 進数 :55 72 91 87 下記画面 ( 字形 ) は Acrobat のプリフライトからご確認いただけます GID:55 GID:72 GID:91 GID:87 ここでご説明する内容は一例であり フォントの種類によって表示までの仕組みが異なります 10
フォントの埋め込み方法 (1/4) Word から PDF 作成時にフォントを埋め込む Word + Acrobat PDF Maker Word + Acrobat Distiller Acrobat で既存の PDF にフォントを埋め込む プリフライト フォントを埋め込む フォントを埋め込む ( テキストが非表示の場合も含む ) / 欠落しているフォントを埋め込む 11
フォントの埋め込み方法 (2/4) Word から PDF 作成時にフォントを埋め込む Word + Acrobat PDF Maker Word + Acrobat Distiller この設定でもフルセットで埋め込みはされません 12
フォントの埋め込み方法 (3/4) Acrobat で既存の PDF にフォントを埋め込む プリフライト フォントを埋め込む 非表示テキストのフォントは埋め込まれない 13
フォントの埋め込み方法 (4/4) Acrobat で既存の PDF にフォントを埋め込む プリフライト フォントを埋め込む ( テキストが非表示の場合も含む ) / 欠落しているフォントを埋め込む 上記 2 つは名称は異なるが 同じ処理が行われる ( 非表示テキストのフォントも埋め込む ) 14
フォント埋め込みの調査結果 Word 2016 Acrobat PDF Maker Acrobat Distiller フォントを埋め込む Acrobat Pro 2017 プリフライト フォントを埋め込む ( テキストが非表示の場合も含む ) 欠落しているフォントを埋め込む フォント埋め込みプラグイン ( 開発中 ) 欧文フォントサブセット〇〇〇〇〇 フルセット 和文フォントサブセット〇〇〇〇〇 フルセット 15
フォント埋め込みプラグインについて フォント埋め込みプラグインは 以下に対応する予定です フォルダ指定して フォント埋め込みの一括処理 対応済 : フォント埋め込みなし フルセット埋め込み 対応予定 : サブセット埋め込み フルセット埋め込み エンコーディングは随時対応 対応済 :WinAnsiEncoding UniJIS-UTF16-H 対応予定 :Identity-H フォント埋め込み無し フルセット埋め込み 16
デモ 17
参考埋め込まれているフォントの確認方法 Acrobat - ファイル - プロパティ - フォント 埋め込まれていない システム内のフォントで表示 サブセット埋め込み 一部の文字のみ埋め込み フルセット埋め込み すべての文字が埋め込み 18
参考文献 本資料を作成するにあたり 以下の文献を参考にしました PDF 1.7 テクニカルリファレンス ISO 32000-1 標準文書と同等の技術内容が記載されている https://www.adobe.com/devnet/pdf/pdf_reference.html (PDF32000_2008.pdf) 9.10.2 Mapping Character Codes to Unicode Values PDF 1.3 日本語訳書籍 ( タイトル :PDF リファレンス第 2 版 発行 : 株式会社ピアソン エデュケーション ) CID( 文字コード ) について https://ja.wikipedia.org/wiki/cid_( 文字コード ) Adobe - Font and Type Technology Center http://www.adobe.com/devnet/font/#ckf The Adobe-Japan1-6 Character Collection https://wwwimages2.adobe.com/content/dam/acom/en/devnet/font/pdfs/5078.adobe-japan1-6.pdf CMap https://github.com/adobe-type-tools/cmap-resources/tree/master/adobe-japan1-7/cmap Cid2code https://raw.githubusercontent.com/adobe-type-tools/cmap-resources/master/adobe-japan1-7/cid2code.txt FDA - Electronic Common Technical Document (ectd) https://www.fda.gov/drugs/electronic-regulatory-submission-and-review/electronic-common-technical-document-ectd ectd Submission Standards https://www.fda.gov/media/93301/download Portable Document Format Specifications https://www.fda.gov/media/76797/download 上記より抜粋 FONTS Fully embed all non-standard fonts. 19
参考フォントの形式について 形式種類説明 PostScript Type 0 コンポジットフォント ( 複合フォント ) と呼ばれ 複数の子フォントで構成される 子フォントは Type0 or Type1 or Type3 この階層構造の仕組みを利用して 日本語用のフォント (OCF/CID-Keyed) が開発された Type 1 欧米用 1 フォントに格納出来る文字数は 1 バイト分の 256 文字 PostScript 言語を用いて字形のアウトライン情報のみを格納 最終的な字形は外部のフォントプログラムを用いて表示する Type 3 欧米用 PostScript 言語を用いて 完全な字形を生成して表示 外部のフォントプログラムに依存せずに表示出来る CID-Keyed 中国語 日本語 韓国語などの複数バイトに対応したフォント CMap( 文字コードをCIDに変換 ) 文字コレクション( 字形にCIDが割り振られたもの ) CIDフォントファイル ( 字形をビットマップ化して表示 ) の3 要素で構成される CIDフォントファイルの形式は2 種類あり CIDFontType0(Type 1 形式 ) とCIDFontType2(True Type) 日本語フォントを埋め込んだPDFのプロパティに 種類:TrueType(CID) と表示されるのはこの為と思われる また ベースはType0の為 プリフライトのフォント情報から サブタイプの値が Type 0 と表示されることも確認出来る TrueType TrueType AppleがPostScriptフォントに対抗して開発 Mac 採用後 Windowsも標準搭載された ただし 同じフォント名であっても WindowsとMacに互換性は無い OpenType OpenType Adobe と Microsoft 共同開発 TrueType と Postscript の両形式をサポートする Unicode で実装されており Windows と Mac で互換性がある 上記はすべてアウトラインフォントに属する アウトラインフォント : 字形の輪郭を演算して表示する為 拡大縮小しても滑らかに表示される ビットマップフォント : 表示するか否かを 1 ビットで保持 元のサイズで表示するのであれば アウトラインフォントよりも少ない容量かつ高速に表示が出来る 拡大するとギザギザとなる 20
ご静聴いただきありがとうございました End 21