2011-11-22 6 views
5

JavaアプリケーションがiTextを使用してPDFを作成します。コンテンツがアジアの場合もありますが、動作しません。アジア文字は表示されません。アジア文字をサポートするiTextを設定するには?

iTextのダウンロードページでiTextAsian.jarが見つかりましたが、その使用方法はわかりません。

目標は、お気に入りのフォントをデフォルトで使用することです。しかし、文字が利用できない場合、この文字には他のフォントが使用されます。私は読んで、iTextはそのようにautomaticalyフォントを選択することができますが、どのようにこれを設定するには?

また、すべての必要なフォントをPDFに含めたいので、ユーザーは自分のコンピュータにアジアフォントをインストールする必要はありません。

+0

「記号」ではありません。これらは文字です。 – NullUserException

+0

あなたのユーザーはすべて、PDFビューアでインストールされたアジア言語のフォントパックを持っているのですか、またはPDFビューアのインストールされている基盤を制御できますか?そうでない場合は、PDF埋め込みフォントを使用するとPDFが大きくなりすぎる - iTextはドキュメントに必要なグリフのみを埋め込みますか? –

+0

ユーザーを制御できません。これは、PDFを作成するWebアプリケーションです。アジアン文字のないPDFよりもサイズが大きいPDFが適しています。次のステップでは、ユーザーのコンテンツにアジア系文字が含まれているかどうかを検出し、それに基づいて余分なフォントを含めてスキップします。 – Witek

答えて

2
  • "FontSelector"を定義して、フォント(fontSelector.AddFont)を追加することができます。 iTextは、fontSelector.Processメソッドを使用して、次に定義されたフォントから利用できない文字を選択します。
  • アジアの文字は通常Unicodeなので、Ansiの代わりに "BaseFont.IDENTITY_H"(FontFactory.GetFont( "tahoma"、BaseFont.IDENTITY_H)など)を設定する必要があります。
  • RTLの場合、方向プロパティを実行している要素にテキストをラップし、rtlに設定する必要があります。
+0

どのフォントをaddFont()経由で追加する必要がありますか? – Witek

+0

BaseFont.IDENTITY_Hは、選択された.ttfフォントを最終的なPDFに埋め込みます。したがって、その言語の完全な文字を持つフォントを探します。 – VahidN

+0

ウェブサイトのユーザーはどこからでも来ることができるので、すべての文字のフォントをセレクタに追加する必要があります。どのように(10?)フリーフォントが一緒にすべての文字の99%をカバーするかを調べるには? – Witek

関連する問題