1

プロジェクトでPDFの作成にiTextSharpを使用していますが、フォントに問題があります...

これは私のコードです...

 //Path to our font
 string arialuniTffFont = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "ARIALUNI.TTF");
 //Register the font with iTextSharp
 iTextSharp.text.FontFactory.Register(arialuniTffFont);

 fontTitleReport = BaseFont.CreateFont(arialuniTffFont, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

ローカル プロジェクトでは動作するが、クラウドでは動作しない クラウドに関するエラーが発生する 自分のフォントのパス (c:\Window\Font\...) が表示されない

修正方法...助けてくださいT ^ T

ps。このフォント (Arial Unicode MS) を使用したいのは、レポートで多くの言語を作成したいからです (例: 英語、日本語、タイ語など)。

4

2 に答える 2

1

ファイル システムがない場合 (Google App Engine など)、別のcreateFont()方法、具体的にはストリームをパラメーターとして受け入れる方法の 1 つを使用する必要があります。

byte[]フォント ファイルの場所をパラメーターとして渡す代わりに、フォント プログラムのを渡す必要があります。たとえば、http: //api.itextpdf.com/itext/com/itextpdf/text/pdf/BaseFont.html#createFont (java.lang.String , java.lang.String, boolean, boolean, byte[],バイト[])

あなたの場合、TTFファイルについて話しているので、このファイルのバイトをパラメーターとして渡す必要がttfAfmあり、パラメーターpfbは次のようになりますnull(このパラメーターは、フォントプログラムが2つのファイルで構成されるType1フォントにのみ使用されます:AFMファイルと PFB ファイル)。

于 2013-11-11T08:05:45.493 に答える
1

失敗の理由: フォントをインストール/コピーしたため、ローカル PC で動作していますC:\Windows\Fonts。しかし、これらのフォントがリモート PC にインストールされていません。

解決策:C:\Windows\Fontsフォントをクラウドの場所 にインストール/コピーする必要があります。

于 2013-11-11T03:30:42.667 に答える