biz-Streamマニュアル よくあるご質問(FAQ) PDF出力 非埋め込みの IPAフォントが文字化けします。

Q非埋め込みの IPAフォントが文字化けします。

A回答

フォントエンコーディングが正しく設定されていない可能性があります。下記を確認してください。

1. 非埋込みフォントのフォントエンコーディング指定方法について

biz-Stream で取り扱う非埋込みフォントでは、図1のように、ページ・レイアウトに配置した <Label> や <multi-text> などのテキストオブジェクトごとにフォントエンコーディング (FontEncoding属性や font-encoding属性) を指定することができます。

図1. レイアウト・デザイナ画面でフォントエンコーティングを設定する例

ページ・レイアウトで明示的に指定しない場合は、bsfont.properties (v5.1 以前は pdf.properties) で指定されているデフォルトエンコーディングが優先されます。 等幅フォントの場合「90ms-RKSJ-H/90ms-RKSJ-V」で、プロポーショナルフォントの場合「90msp-RKSJ-H/90msp-RKSJ-V」となります。(下表1)

ただし「IPA ゴシック」「IPA 明朝」「IPA Pゴシック」「IPA P明朝」に限っては、v5.0~v5.1 と、v4.X 以前および v5.2 以降でデフォルトエンコーディングが下記のように異なります。

biz-Stream 
バージョン
IPAフォントのデフォルトエンコーディング 左記以外のフォントのデフォルトエンコーディング
横書き 縦書き 横書き 縦書き
v4.X UniJIS-UTF16-H UniJIS-UTF16-V 90ms-RKSJ-H/90msp-RKSJ-H 90ms-RKSJ-V/90msp-RKSJ-V
v5.0~v5.1 90ms-RKSJ-H/90msp-RKSJ-H 90ms-RKSJ-V/90msp-RKSJ-V 90ms-RKSJ-H/90msp-RKSJ-H 90ms-RKSJ-V/90msp-RKSJ-V
v5.2 以降 UniJIS-UTF16-H UniJIS-UTF16-V 90ms-RKSJ-H/90msp-RKSJ-H 90ms-RKSJ-V/90msp-RKSJ-V

表1. 非埋込みフォントのデフォルトエンコーディング


このため、IPAフォントを使用していて、ページ・レイアウトでフォントエンコーディング属性が未指定の場合は、バージョンアップによってデフォルトエンコーディングが変わり文字化けが発生することがあります。その場合は、図1のようにページ・レイアウトで各オブジェクトごとに明示的に「UniJIS-UTF16-H/UniJIS-UTF16-V」を指定してください。

  • 埋め込みフォントの場合は、フォントエンコーディングは userfont.properties (v5.1以前は pdf.properties)で一括指定します。ライブラリ共通ガイド「6.3.2 userfont.properties への追加手順」を参照してください。

2. レイアウトタグの属性名の表記について

なお、biz-Stream のレイアウトタグには下記の2種類の表記があります。タグによって属性名の表記が異なるため、文字列置換をする場合には注意が必要です。

1大文字+小文字表記のタグ

<Label>、<VerticalLabel>、<Currency>などの大文字+小文字で表記されるタグは、属性名も大文字+小文字表記となるため、下記のようにFont属性や、FontEncoding属性を持ちます。

(横書きの例)
 <Label Font="IPAMincho" FontEncoding="UniJIS-UTF16-H" />
 <Currency Font="IPAMincho" FontEncoding="UniJIS-UTF16-H" />
(縦書きの例)
 <VerticalLabel Font="VIPAMincho" FontEncoding="UniJIS-UTF16-V" />
2小文字表記のタグ

<multi-text>、<multi-vtext>、<datetime-text>など小文字で表記されるタグは、属性名も小文字表記となるため、下記のようにfont-family属性や、font-encoding属性を持ちます。

(横書きの例)
 <multi-text font-family="IPAMincho" font-encoding="UniJIS-UTF16-H" />
 <datetime-text font-family="IPAMincho" font-encoding="UniJIS-UTF16-H" />
 <page-number font-family="IPAMincho" font-encoding="UniJIS-UTF16-H" />
(縦書きの例)
 <multi-vtext font-family="VIPAMincho" font-encoding="UniJIS-UTF16-V" />

それぞれのタグの属性については、XMLページレイアウトタグ リファレンス「第3章 テキスト」をご確認ください。

  • レイアウトファイルは基本的にはレイアウトデザイナ画面上で編集・保存することを推奨しています。
    テキストエディタ等で編集される場合は、大文字小文字などの記述を間違えないようにご注意ください。誤った属性を設定すると正しい帳票が生成されない場合があります。
    また手書きにて間違って書かれた属性は、レイアウト・デザイナで開いた際に削除されたり、必須の属性が記述されていない場合は自動的に補完されたりすることがあります。