本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
C#で、外字ファイルをシステムインストールしていないパソコンで表示させたい。
WPFだと外字を組み込み表示上は何とかなったのだが、印刷しようとするとどうしても□が出てくる。
さて、どうしたものか。
色々と調べまわってみたところ、以下のようにコードを書くと、印刷時に外字が出てくる事が分かった。これでシステム的な紐づけがされるのか?良く分からないのだけど、外字ファイルを指定してフォントファミリーに対する。実際に描画する時には全く違うフォントを指定しているのだが、ちゃんと外字が印字されるようになった。理屈が分からずちょっと気持ち悪いが。
※プログラムと同じディレクトリにEUDC.TTEファイル(外字ファイル)を置く事
//http://dobon.net/vb/dotnet/graphics/privatefontcollection.html //http://d.hatena.ne.jp/EnogunoCap/20090418/1240021079 //PrivateFontCollectionオブジェクトを作成する System.Drawing.Text.PrivateFontCollection pfc = new System.Drawing.Text.PrivateFontCollection(); //PrivateFontCollectionにフォントを追加する pfc.AddFontFile(@"EUDC.TTE"); //使いたいフォント名を見つけてFontFamilyオブジェクトを変数にセット FontFamily addedFont = null; foreach (FontFamily ff in pfc.Families) { if (ff.Name == "EUDC") { addedFont = ff; break; } } //明朝で印刷指定してもちゃんと、外字が出てくる e.Graphics.DrawString(TextValue, new Font("MS 明朝", FontSize), Brushes.Black, hidariyohaku + 40, dan_2 - 25, new StringFormat());
外字のフォントはゴシック指定になっていた。