多くのユーザーが中国語の文字が「####」として表示される問題に遭遇しています。 Apache FOP を使用して生成された PDF ドキュメント。この問題を解決するには、3 段階のプロセスが必要です。
まず、FO ファイルで目的のフォント ファミリを指定する必要があります。デフォルトでは、FOP は Helvetica フォントを使用しますが、漢字はサポートされていない可能性があります。 SimSun などの別のフォントを指定するには、FO ファイルに次の行を含めます:
<code class="xml"><fo:block font-family="SimSun">...</fo:block></code>
ただし、これだけでは問題を解決するには十分ではない可能性があります。 FOP では、指定されたフォント ファミリを実際のフォント ファイルにマップするための設定も必要です。この構成は、FOP の構成ファイルで指定されます。通常は conf/fop.xconf にあります。構成ファイルに次の行を追加します:
<code class="xml"><directory>/path/to/fonts</directory></code>
これは、指定されたディレクトリ内のすべてのフォント ファイルを自動的に構成するように FOP に通知します。あるいは、フォント ファミリとスタイルの組み合わせごとにフォント マッピングを明示的に指定することもできます。
<code class="xml"><font kerning="yes" embed-url="/path/to/SimSun.ttf"> <font-triplet name="SimSun" style="normal" weight="normal"/> </font></code>
最後に、FOP を呼び出すときに構成ファイルを指定します。コマンドラインから -c オプションを使用します:
<code class="bash">fop -c /path/to/fop.xconf input.fo input.pdf</code>
または、Java コードから FOP を使用する場合:
<code class="java">fopFactory.setUserConfig(new File("/path/to/fop.xconf"));</code>
次の手順に従うことで、FOP は必要な情報を取得します。生成された PDF ドキュメントで SimSun フォントを使用して中国語の文字を正しく表示します。
以上がApache FOP で生成された PDF で SimSun を使用して中国語を表示するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。