フォント

MS Office 文書から PDF/SVG への変換を正確に行うためには、変換元文書で使用されているすべてのフォントファイルが Office Server Document Converter V10.0 の実行環境に用意されている必要があります。
フォントファイルが置かれている場所は フォント構築ファイル で指定しておく必要があります。

Officeのクラウドフォントは対応していません。

また、実際のフォントファイルが用意できない場合は、使用可能な別のフォントに置き換える必要があります。フォントの置き換えは、コマンドラインインターフェイス の -fontalias オプションか オプション設定ファイル で指定できます。
Windows環境では、存在しないフォントは自動的に別のフォントに置き換えられますが、その置き換えが不適当なことも多々ありますので置き換えが不適当なときは コマンドラインインターフェイス の -fontalias オプションか オプション設定ファイル で指定してください。

フォント構築ファイル は、フォント環境を細かく設定するためのものです。インストール時に初期状態のものが作成されていますが、非Windows版では、ご自身のフォント環境に合わせて設定する必要があります。Windows版では、多くの場合そのままでも問題ありませんが、フォントファイルを Windows のフォントディレクトリ以外に導入されているときは設定が必要です。

Office Server Document Converter V10.0 は、外字(EUDC) にも対応しています。

  INX出力でのフォントの扱いについては、INX出力フォントを参照してください。
  XPS出力でのフォントの扱いについては、XPS出力フォント出力を参照してください。

サポートされるフォント

Office Server Document Converter V10.0 は、以下の種類のフォントに対応しています。

注意: 同一ディレクトリ内に、異なる種類のフォントで、ファイル名やフォントファミリ名が同じものが混在している場合、そのどちらが採用されるのかは不定です。また、動作に支障を来たす恐れもありますので、そのような混在は避けてください。

フォント構築ファイル

Office Server Document Converter V10.0 のフォント環境を設定するには、フォント構築ファイルを作成する必要があります。

フォント構築ファイルは、単純な構造のXMLファイルで、Linux版では通常 [Install directory]/​etc に、Windows版では [Install directory] に置かれます。

フォント構築ファイルは、環境変数とシンボリックリンク で指定しておかなければなりません。 デフォルトでは font-config.xml という名前で設定されています。

フォント構築ファイル内で、もっとも重要な要素は <font-folder> です。 Linux版で、PDFの基本14フォントより多くのフォントを使用したい場合は、特定のディレクトリの下にフォントファイルを用意し、フォント構築ファイルに <font-folder path="..."> 要素を追加します。

Office Server Document Converter V10.0 は自動的に <font-folder path="..."> で指定されたディレクトリの中のフォントファイルを検出します。たいていの場合(いくつかの例外がありますが)、それぞれのフォントファイルすべてをフォント構築ファイルに記述する必要はありません。

初期のフォント構築ファイル

以下は、初期のフォント構築ファイルです。Office Server Document Converter V10.0 Linux版では、次のようなフォント構築ファイル[Install directory]/​etc にインストールされます。

<?xml version="1.0" encoding="UTF-8" ?>
<!-- DOCTYPE font-config SYSTEM "font-config.dtd" -->
<font-config>
  <!--otf-metrics-mode mode="typographic"/-->
  <!-- add your font folder here -->
  <!-- font-folder path="/home/user-name/fonts" -->
  <!-- /font-folder -->
  <font-folder path="[Install directory]/fonts">
    <glyph-list file="ZapfDingbats-glyphname.txt" afm="ZapfDingbats.afm"/>
  </font-folder>
</font-config>

Office Server Document Converter V10.0 Windows版では、次のようなフォント構築ファイル[Install directory] にインストールされます。ここに、[System font directory] にはWindowsのフォントディレクトリが設定されます。

<?xml version="1.0" encoding="UTF-8" ?>
<!-- DOCTYPE font-config SYSTEM "font-config.dtd" -->
<font-config>
  <name-processing-mode mode="windows-name"/>
  <!--otf-metrics-mode mode="typographic"/-->
  <!-- add your font folder here -->
  <font-folder path="[System font directory]">
  </font-folder>
</font-config>

Windows版では、フォント構築ファイルが存在しないときは、この内容のフォント構築ファイルが仮定されます。

ユーザーフォントには対応していません。ユーザーフォントを使用する場合は、フォント構築ファイルにユーザ用フォントディレクトリを設定する必要があります。

フォント構築ファイルの要素と属性

以下は、フォント構築ファイルの要素と属性の概略です。

要素 位置 属性 既定値 説明
<font-config> ルート要素

Office Server Document Converter V10.0 のフォント構築ファイルのルート要素です。

<name-processing-mode> <font-config> の子要素 mode

Type 1 フォントのフォント名とフォントファイルの対応付けを、Windowsの名前(.PFM+.PFB)だけで行うかどうかを指定します。 "mode" 属性には、"default" または "windows-name" を指定します。既定値は "default" です。"windows-name" が指定されている環境を、WindowsNameモードと言います。

<name-processing-mode mode="windows-name"/>

この要素は <font-folder> に先んじなければならず、ひとつだけ指定できます。

<font-folder> <font-config> の子要素 path

"path" 属性で、フォントフォルダを指定します。

<font-folder path="/home/user-name/fonts">
  ...
</font-folder>

この要素はいくつでも指定できます。

<glyph-list> <font-folder> の子要素 file

file 属性で、Type 1 フォントのグリフリストファイル(ベースファイル名、ワイルドカード不可)を指定し、"afm" 属性で Type 1 フォントファイルを指定します。 グリフリストには、Type 1 フォントのUnicodeとグリフ名の対応付けのルールを定義します。

<glyph-list file="carta.txt" afm="CR______.AFM"/>

この要素はいくつでも指定できます。

afm
<skip-glyphname-mapping> <font-folder> の子要素 afm

Type 1 フォントの、Unicodeとグリフ名、またはUnicodeと文字コードの対応付けを行わないことを指示します。 対応する Type 1 フォントファイルは、"afm" 属性で指定します。

<skip-glyphname-mapping afm="CR______.AFM"/>

この要素はいくつでも指定できます。

<font-exclude> <font-folder> の子要素 file

file 属性で指定されたフォントファイル(ベースファイル名、ワイルドカード不可)を無視します。つまり、指定されたフォントファイルは処理されません。。

<font-exclude file="times.ttf"/>

この要素はいくつでも指定できます。

<font-alias> <font-folder> の子要素 file

フォントファミリ名の別名の定義を指示します。 file 属性で対象となるフォントファイル(ベースファイル名、ワイルドカード不可)を指定します。 Type 1 フォントは、拡張子 .AFM または .PFM を持つフォントファイルを指定します。TrueType または OpenType フォントでは、拡張子 .TTF または .TTC または .OTF を持つフォントファイルを指定します。 entry 属性には、.TTC(TrueType Collection)ファイル内の、フォントの番号を指定します。これは、1以上の整数値でなければなりません。 entry 属性を省略したときは1とみなされます。.TTC 以外では指定しても無視されます。

<font-alias file="simsun.ttc" entry="1">
  ...
</font-alias>

別名の定義は、この要素内に <alias> 要素を列挙します。 この要素はいくつでも指定できます。

entry
<alias> <font-alias> の子要素 family-name

<font-alias>file で指定されたフォントに対する別名を定義します。別名情報は、family-name 属性、weight 属性、italic 属性を使って指定されます。 family-name 属性に、別名となる任意の名前を指定します。 新たに定義された名前は、存在する他の font-family名と一致しないようにする必要があります。 weight 属性はフォントの太さを指定し、100~900 の 100単位の数値、または normal または bold を指定します。省略したときは "normal" とみなされます。 italic 属性は斜体かどうかを、true または false で指定します。true ならば斜体です。省略したときは false とみなされます。 ひとつのフォントに対して複数の別名を定義できます。この要素はいくつでも指定できます。

FO中では、ここで指定された名前とスタイルを使って、<font-alias>file で指定されたフォントファイルを表示することができます。

<font-alias file="ARIALI.TTF">
  <alias family-name="MyArial"/>
</font-alias>
<font-alias file="ARIALBI.TTF">
  <alias family-name="MyArial" weight="bold"/>
</font-alias>

上の例では、font-family="MyArial" font-weight="normal" という指定で、"ARIALI.TTF" が、font-family="MyArial" font-weight="bold" という指定で、"ARIALBI.TTF" が、それぞれ表示されます。以下の点に注意してください。

  • もともとイタリックのフォントを指定しておいて、font-style="normal" を指定してもnormalにはなりません。
  • もともとボールドのフォントを指定しておいて、font-weight="normal" を指定しても細くなりませんし、font-weight="bold" を指定してもさらに太くなりません。

<alias> の指定では、<font-alias>file に指定されたファイルを名前とスタイルでもって選択して表示するだけです。例えば、font-style="italic" という指定のとき、スタイルにitalicを指定した <alias> がなければ、normalのものが採用されます。

weight normal
italic false
<windows-registry> <font-config> の子要素 reference

Windows版のときのみ有効で、外字情報をWindowsのレジストリから求めるかどうかを指定します。 "reference" 属性が "enable" ならレジストリを参照し、"disable" なら参照しません。省略したときは "enable" とみなされます。

<eudc-processing> <font-config> の子要素 mapping enable

外字の処理方法を指定します。 mapping 属性が enable なら外字を処理し、disable なら処理しません。省略したときは enable とみなされます。

<eudc-range> <eudc-processing> の子要素 start

外字の範囲をUnicodeで指定します。

<eudc-range start="57344" end="63743"/>

指定は数値で行います。この例では、57344 = U+E000、63743 = U+F8FF です。 指定がない場合、Windows版でレジストリ参照が有効なときは、レジストリの指定に従います。 そうでないときは、PUA領域(U+E000~U+F8FF)とみなされます。 end を省略したときは、start と同じ値とみなされます。また、複数の範囲を指定することができます。

end
<eudc-system-default> <eudc-processing> の子要素 file-path

システムデフォルトの外字フォントファイルを指定します。これは、対応するグリフが指定外字フォントにない場合などに利用されます。 指定がない場合、Windows版でレジストリ参照が有効なときは、レジストリの指定に従います。このとき、コードページ932を参照します。 そうでないときは、システムデフォルトの外字フォントなしとなります。

<eudc-map> <eudc-processing> の子要素 family-name

family-name 属性で指定されているフォントに対して、外字範囲の文字コードが指定されたときに使用する外字ファイルを file-path 属性で指定します。 Windows版でレジストリ参照が有効なときは、それも考慮されます。 同じ font-family の指定は、先に現れたものが優先し、フォント構築ファイルのものがレジストリよりも優先します。 この要素はいくつでも指定できます。

file-path

フォント構築ファイルのDTDは次のとおりです。

<!ELEMENT font-config ( name-processing-mode?, 
                        font-folder+,
                        windows-registry?, eudc-processing? )>

<!ELEMENT name-processing-mode EMPTY>
<!ATTLIST name-processing-mode mode (default|windows-name) "default">


<!ELEMENT font-folder ( glyph-list
                      | skip-glyphname-mapping
                      | font-exclude
                      | font-alias
                      )*>
<!ATTLIST font-folder path CDATA #REQUIRED>

<!ELEMENT glyph-list EMPTY>
<!ATTLIST glyph-list file CDATA #REQUIRED
                     afm  CDATA #REQUIRED>

<!ELEMENT skip-glyphname-mapping EMPTY>
<!ATTLIST skip-glyphname-mapping afm CDATA #IMPLIED
                                 pfm CDATA #IMPLIED>

<!ELEMENT font-exclude EMPTY>
<!ATTLIST font-exclude file CDATA #REQUIRED>

<!ELEMENT font-alias (alias)*>
<!ATTLIST font-alias file  CDATA #REQUIRED
                     entry CDATA #IMPLIED>

<!ELEMENT alias EMPTY>
<!ATTLIST alias family-name CDATA #REQUIRED
                weight (normal|bold|100|200|300|400|500|600|700|800|900) #IMPLIED
                italic (true|false) #IMPLIED>

<!ELEMENT windows-registry EMPTY>
<!ATTLIST windows-registry reference (enable|disable) #IMPLIED>

<!ELEMENT eudc-processing ( eudc-range*, eudc-system-default?, eudc-map* )>
<!ATTLIST eudc-processing mapping (enable|disable) "enable">

<!ELEMENT eudc-range EMPTY>
<!ATTLIST eudc-range start NMTOKEN  #REQUIRED
                     end   NMTOKEN  #IMPLIED>

<!ELEMENT eudc-system-default EMPTY>
<!ATTLIST eudc-system-default file-path CDATA #REQUIRED>

<!ELEMENT eudc-map EMPTY>
<!ATTLIST eudc-map family-name CDATA #REQUIRED
                   file-path   CDATA #REQUIRED>

Adobe Type 1 フォント

ここでは、Adobe Type 1 フォント の一般的な情報と、Office Server Document Converter V10.0 が Adobe Type 1 フォント にどのように対応しているかを記述します。お使いの環境で、Adobe Type 1 フォントをより便利に使うヒントを示します。

フォントの構成と必要条件

Adobe Type 1 フォントは、以下のフォントファイルから成ります。

拡張子 説明
.PFB (Printer Font Binary) バイナリ圧縮されたフォントのアウトラインが含まれます。
.AFM (Adobe Font Metrics) 一般フォント情報と、フォントメトリクス情報を含むテキストファイルです。 .AFM+.PFB のペアで使用されます。
.PFM (Printer Font Metrics) 一般フォント情報と、フォントメトリクス情報を含むバイナリフォーマットのファイルです。.PFM+.PFB のペアで使用されます。

Office Server Document Converter V10.0 は、.AFM+.PFB または .PFM+.PFBのどちらのタイプの組み合わせにも対応しています。

以下は Type 1 フォントに関する必要条件です。

  • 他にも、.PFAPrinter Font Ascii)という拡張子を持つアウトラインファイルが存在しますが、Office Server Document Converter V10.0 はこのアウトラインファイルには正式には対応していません。 ほとんどの Type 1 フォント製品が .PFB 形式で出荷されていますので、.PFB 形式のフォントファイルをお使いください。
  • 拡張子 .MMM を持つ Type 1 フォントメトリクスデータには対応していません。 このメトリクスファイルは、Multiple Master Type 1 フォントに使われています。
  • .PFB と対応する .PFM は、同一ディレクトリに存在していなければなりません。ATM(Adobe Type Manager)を使ってインストールされたフォントは異なるディレクトリにインストールされていることがあります。そのようなフォントは、Office Server Document Converter V10.0 では埋め込みに利用することができません。

Adobe Type 1 フォントの埋め込み

Office Server Document Converter V10.0 は、PDFファイルへの Type 1 フォントの埋め込みに対応しています。 フォントを埋め込むためには、以下を準備してください。

  • .AFM+.PFB、または .PFM+.PFB のフォントファイルをフォント構築ファイルの <font-folder> で指定されているフォルダに準備してください。

フォントを埋め込まない場合は、.AFM または .PFM ファイルのどちらかが必要です。 フォントが埋め込まれていないPDFファイルを読むには、ユーザの環境に実際にPDFに使用されているフォントがインストールされている必要があります。

  Office Server Document Converter V10.0 は、Type 1 フォントのグリフのうち、使用しているもののみを埋め込みます。

欧文基本14フォント

非Windows版では、以下の Adobe Type 1 フォントがインストールされます。

  • Courier.afm
  • Courier-Bold.afm
  • Courier-Oblique.afm
  • Courier-BoldOblique.afm
  • Helvetica.afm
  • Helvetica-Bold.afm
  • Helvetica-Oblique.afm
  • Helvetica-BoldOblique.afm
  • Times-Roman.afm
  • Times-Bold.afm
  • Times-Italic.afm
  • Times-BoldItalic.afm
  • Symbol.afm
  • ZapfDingbats.afm

これらには、.PFB は含まれていませんので、PDFへの埋め込みをすることはできません。また、ご利用になるときは、同梱されている MustRead.html をお読みください。

これらのフォントは、PDF core font information からダウンロードすることができます。

TrueType フォントOpenType(TrueTypeアウトライン)フォント

ここでは、TrueType フォント、OpenType(TrueTypeアウトライン)フォント の一般情報と、Office Server Document Converter V10.0 がどのようにそれらを取り扱っているのかを説明します。お使いの環境で、より便利にこれらのフォントをお使いいただくヒントを示します。

フォントの構成と必要条件

TrueType フォントは、Apple Computer によって開発され、Windows環境で使われています。OpenType フォントは、プラットフォーム非依存のフォントとして Adobe と Microsoft により共同開発されました。 もともと OpenType フォントは、2種類の性質を持っています。 ひとつは、TrueTypeアウトライン であり、もうひとつは PostScriptアウトライン です。TrueTypeアウトライン を持つ OpenType フォントファイルは、拡張子 .TTF または .TTC のファイルを持ちます。PostScriptアウトライン を持つ OpenType フォントファイルの拡張子は .OTF です。 ここでは、元々の TrueType フォントと OpenType(TrueTypeアウトライン)フォントを一緒に説明します。 以降では、TrueType フォントOpenType(TrueTypeアウトライン)フォント をあわせて、TrueType フォント として記述します。

TrueType フォントは、拡張子 .TTF または .TTC の単一ファイルで構成されています。 .TTCTrueType Collection の短縮形で、単一ファイル内に複数の TrueType フォントを含みます。 CJKフォントで使われることがあります。

以下は、TrueType フォントの必要条件です。

  • Unicodeをグリフインデクスにマップするための cmap table が必要です。ほとんどの TrueType フォントはそれを持っています。
  • 古い TrueType フォントの中には、OS/2 table にコードページ情報を持っていないフォントがあります(ulCodePageRange1, 2)。 これは、Office Server Document Converter V10.0 がフォントの選択を行うときに影響を与えますので、このような古い TrueType フォントはお使いいただかないことをお勧めします。
  cmap table など、TrueType フォントの詳細については、以下のようなサイトを参照してください。

TrueType フォントの埋め込み

Office Server Document Converter V10.0 は、TrueType フォントをPDF/SVGファイルへ埋め込むことができますが、TrueType フォントは、OS/2 tablefsType 項目に、ライセンス情報を持っています。Office Server Document Converter V10.0 はこのライセンス情報を考慮し、埋め込み禁止フォントを埋め込もうとした場合はエラーとします。
なお、TrueType フォントは、使用されているグリフだけが埋め込まれます。

  PDFリファレンスでは、あらゆるビューアアプリケーションが期待どおりの正しい表示をするためには、TrueType フォントを埋め込むように推奨しています。 TrueType フォントが埋め込まれていないPDFを Adobe Acrobat または Reader が処理するとき、特定のUnicode文字とフォントの組み合わせによっては、エラーが表示される場合があるからです。 例えば、タイ語の文字が使われている TrueType フォントが非埋め込みで作成されたPDFファイルは、Adobe Acrobat または Reader で開こうとすると、実際にフォントが存在するにも関わらず、"font not found" のエラーが表示されます。一方、アラビア語が使われているフォントは、埋め込みをしなくてもこのようなエラーは起こりません。

OpenType(PostScriptアウトライン)フォント

ここでは、OpenType(PostScriptアウトライン) フォントの一般情報と Office Server Document Converter V10.0 がどのようにそれらを取り扱っているのかを説明します。お使いの環境で、より便利にこれらのフォントをお使いいただくヒントを示します。

フォントの構成と必要条件

OpenType(PostScriptアウトライン)は、フォントの構成と必要条件 に記述されている OpenType フォントの1種類です。 OpenType(PostScriptアウトライン)フォントは、拡張子が .OTF で、単一のファイルから構成されます。また、OpenType(PostScriptアウトライン)は、ふたつのカテゴリに分類されます。 ひとつは、OpenType(PostScript)CID フォントであり、もうひとつは、OpenType(PostScript)non-CID フォントです。以下でこれらのカテゴリを簡単に説明します。

TypeContentsTreatment in PDF
non-CID フォント 主に Latin文字のグリフを含み、グリフは、グリフ名を使ってインデクスされます。これは、Type 1 フォントと同様です。 Type 1
CID フォント主に CJK ideograph グリフを含み、グリフは、CIDを用いてインデクスされます。 Type 0

OpenType は、新しい標準形式です。Office Server Document Converter V10.0 からお使いいただくときに必要な条件はありません。

OpenType(PostScriptアウトライン)フォントの使用法

使い方、family-namefont-weightfont-style のマッピング規則は、TrueType フォントと同様です。 詳細は、フォントの構成と必要条件 を参照してください。

OpenType(PostScriptアウトライン)の中には、100の倍数でない font-weight 値を持つフォントがありますが、この場合、Office Server Document Converter V10.0 は値を四捨五入します。

OpenType(PostScriptアウトライン)フォントの埋め込み

フォントの埋め込み条件は、TrueType フォントと同様です。詳細は、TrueType フォントの埋め込み を参照してください。

別名を使ったフォントファミリの統合

OpenType(PostScriptアウトライン)CID フォントの中には、フォントファイルごとにフォントファミリ名を定義しているフォントがあります。 もともとこれらのフォントは、同じフォントファミリに属し、異なる font-weight値を持ちます。

Font file Family-name Weight Italic
HeiseiKakuGoStd-W3.otf Heisei Kaku Gothic Std W3 300 normal
HeiseiKakuGoStd-W5.otf Heisei Kaku Gothic Std W5 500 normal
HeiseiKakuGoStd-W7.otf Heisei Kaku Gothic Std W7 700 normal
HeiseiKakuGoStd-W9.otf Heisei Kaku Gothic Std W9 900 normal

Windows環境において、同じフォントファミリ名に対して、3つを超えて weight値を持つことができない(Macintosh環境ではこのような組み合わせが可能です)ため、これらのフォントは、フォントファイルごとに異なるフォントファミリ名を持ちます。 これらのフォントを異なるフォントファミリ名で使用するのが不便な場合は、フォント構築ファイルに、以下のような別名定義を加えると、フォントファミリ名を統合することができます。

<font-config>
  <font-folder path="[Install directory]/fonts">
    <glyph-list file="ZapfDingbats.txt" afm="ZapfDingbats.afm"/>
  </font-folder>
  <font-folder path="/home/resource/fonts">
    <!-- Integrate the four OTF font's family name to
         "Heisei Kaku Gothic Std"-->
    <font-alias  file="HeiseiKakuGoStd-W3.otf">
      <alias family-name="Heisei Kaku Gothic Std" weight="300"/>
    </font-alias>
    <font-alias  file="HeiseiKakuGoStd-W5.otf">
      <alias family-name="Heisei Kaku Gothic Std" weight="500"/>
    </font-alias>
    <font-alias  file="HeiseiKakuGoStd-W7.otf">
      <alias family-name="Heisei Kaku Gothic Std" weight="700"/>
    </font-alias>
    <font-alias  file="HeiseiKakuGoStd-W9.otf">
      <alias family-name="Heisei Kaku Gothic Std" weight="900"/>
    </font-alias>
  </font-folder>
</font-config>

外字

Office Server Document Converter V10.0 では、外字(EUDC: End User Defined Character)を利用することができます。

Windows版では、外字の情報をレジストリから取得するので、フォント構築ファイルに外字情報を作成する必要はありませんが、フォント構築ファイルに外字情報が記述されている場合はそれも考慮されます。 非Windows版では、外字を利用するためにはフォント構築ファイルに外字情報を作成しておく必要があります。

<font-config>
 <name-processing-mode mode="windows-name"/>
 <font-folder path="c:\Windows\Fonts"/>
 <eudc-processing mapping="enable">
  <eudc-range start="57344" end="63743"/>
  <eudc-system-default file-path="c:\Windows\Fonts\EUDC.TTE"/>
  <eudc-map family-name="MS 明朝" file-path="c:\Program Files\east\jinmei3\FEJPMIN.TTG"/>
  <eudc-map family-name="MS P明朝" file-path="c:\Program Files\east\jinmei3\FEJPMIN.TTG"/>
 </eudc-processing>
</font-config>

外字の利用は、利用者は意識する必要がありません。Office Server Document Converter V10.0 は、文字コードによって、自動的にフォントの切り替えを行います。