iTextSharp

ASP.NETiTextSharpを使ってPDFを生成しようということで、iTextSharp.dllとiTextAsian.dllをダウンロードして/Binフォルダに設置しましたが

Font 'HeiseiKakuGo-W5' with 'UniJIS-UCS2-H' is not recognized.

となって日本語が使えません。

どうやらiTextAsian.dllにバグがあるらしい。
のでCVSからソースをチェックアウトしてビルドしたもので入れ替えたらあっさり動きました。
なお、「参照の追加」が必要です(多分)。なお、<% @Assenbliy %>ディレクティブではうまくいきませんでしたが、これは私の知識不足のためでしょう。
あとBaseFont.AddToResourceSearch("iTextAsian.dll")は必要ないみたい。
*1
iTextを使ってPDFフォームに値を埋め込む方法と同様のことがiTextSharpでもできました。すばらしい!

Response.ContentType = "application/pdf";
Response.AddHeader("Content-Dispositoin", "attachment: filename=itextsharp.pdf");
PdfReader reader = new PdfReader("template.pdf");
PdfStamper stamper = new PdfStamper(reader, Response.OutputStream);
AcroFields form = stamper.AcroFields;
form.SetField("name", "名前");
form.SetField("address", "住所");
stamper.FormFlattening = true;
stamper.Close();
Response.End();

iTextSharpのチュートリアル
http://itextsharp.sourceforge.net/tutorial/index.html

*1:/Binにdllを配置すれば参照の追加は必要ないはずだし、/BaseFont.AddResourceSearchは必要なはずだよな