- - PR -
iText、VisualStudio2005でエラー
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-04-29 02:27
お世話になります。
環境:OS WindowsXP SP2、VisualStudio2005(2003と共存) .NET TIPS Webフォームから動的にPDF文書を作成するには? http://www.atmarkit.co.jp/fdotnet/dotnettips/309aspgenpdf1/aspgenpdf1.html を参考にPC(A)のVS2003環境で作成、試験済みのロジックをPC(B)のVS2005環境(VS2003共存)に ほぼそのままコピーしたのですが、以下のエラーが出ております。 com.lowagie.text.DocumentException は ユーザー コードによってハンドルされませんでした。 Message="Font 'HeiseiMin-W3' with 'UniJIS-UCS2-H' is not recognized." VS2005で使用する以下の手順で作業を行いました。 1.BINフォルダを作成 ソリューションエクスプローラからWebサイトに対し ASP.NETフォルダの作成でBINフォルダを追加しました。 2.BINフォルダに以下のDLLをコピー (ソリューションエクスプローラで参照追加) Gnu.Classpath.Core.dll Gnu.Classpath.JAXP.dll iTextAsian.dll iTextAspEx.dll iTextdotNET.dll iTextHYPH.dll 3.vjslibを参照追加 ロジックは先頭に Imports System.Data.SqlClient Imports System.Data Imports System Imports com.lowagie.text Imports com.lowagie.text.Font Imports com.lowagie.text.pdf Imports java.io Imports System.IO としています。 エラー付近のコードは Response.ContentType = "application/pdf" Response.AddHeader("content-disposition", "attachment; filename=test.pdf") Dim doc As New Document(PageSize.A4, 35, 0, 0, 0) Dim pw As PdfWriter = PdfWriter.getInstance(doc, Response.OutputStream) doc.open() Dim strSetting As String = "C:\\test\\PDF\\Template.pdf" Dim pr As New PdfReader(strSetting) Dim pcb As PdfContentByte = pw.getDirectContent() Dim font As New Font(BaseFont.createFont("HeiseiMin-W3", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED), 12, font.NORMAL) で、fontの定義で今回のエラーとなります。 気になるのは、TIPSの中にある ---------------------------------------------------- なお、日本語を利用する場合には、BaseFontクラスのcreateFontメソッドで日本語フォント(ここでは“HeiseiMin-W3”)とエンコード方法(ここでは“UniJIS-UCS2-H”)を指定して生成する必要がある。iText.NET標準では、iText.NETとともにインストールされた“KozMinPro-Regular”“HeiseiMin-W3”“HeiseiKakuGo-W5”などのフォントを利用することができる。また、“UniJIS-UCS2-H”“UniJIS-UCS2-V”“UniJIS-UCS2-HW-H”“UniJIS-UCS2-HW-V”などのエンコーディングを利用することができる。 ---------------------------------------------------- ここで、”iText.NETとともにインストールされた”とありますが VS2003の時もそうだったんですが、zipを解凍してDLLを参照追加しただけで 特にインストールといったことはなかったかと思うのですが。 PC(A)のVS2003環境にはAcrobatReaderがインストールされていたので それが原因かと思い、PC(B)のVS2005環境にも同じようにインストールしましたが エラーは解消されませんでした。 大変お手数ですが、何かご存知の方がおられましたら ご教授のほど、どうぞよろしくお願い致します。 以上 | ||||
|
投稿日時: 2006-04-29 11:17
お世話になります。
私も先ほど、 http://prdownloads.sourceforge.net/itextdotnet/iTextdotNET-dll-1.4-1.zip?download から、ダウンロードして Zip を解凍しましたが、 フォントのインストールらしきものは行われませんでした。 *demo* のものも落としてきて、msi を実行しましたが同じでした。 BaseFont.createFont Font Class を眺めていましたが、com.lowagie.text.DocumentException が Throw される原因の 一つとして、やはり フォントの指定が正しくないことが書かれていました。 そこで、実験的に createFont の部分を以下のものに変更してみたところ、 例外が Throw されることなく実行できました。 New Font(Font.HELVETICA, 18, Font.BOLDITALIC, System.Drawing.Color.Black) やはり、フォントの問題のようです...。 _________________ なおこ(・∀・) @ わんくま同盟 主婦と.NETと犬の記録 主婦と.NETと犬のぶろぐ | ||||
|
投稿日時: 2006-04-30 02:04
なおこ(・∀・)様、お世話になります。
ご確認ありがとうございます。 もう少し確認して見たいと思います。 どうもありがとうございました。 | ||||
|
投稿日時: 2008-08-03 20:37
もう遅いかもしれませんが、、、
iTextAsian.dllにバグがあるようです。 WinCVS(私の場合、ごった煮Verを使いました。)でチェックアウト後、Visual C#でiTextSharpからDLしたiTextAsian.dllのsrcをビルドして、iTextAsian.dllを作成しなおす事で解消されると思います。 | ||||
|
投稿日時: 2008-08-19 14:14
aries8jp さん、こんにちは。
私も興味があって iTextSharp を使い始めてみたのですが、 Font 'KozMinPro-Regular' with 'UniJIS-UCS2-H' is not recognized. とエラーが出てしまいました。 WinCVS ごった煮版が落とせないようで(配布中止?) http://svn.sourceforge.net/viewvc/itextsharp/trunk/src/extras/iTextAsian/ の GNU tarball からダウンロードしてビルドしてみたのですが、 現象が改善されませんでした(ダウンロードにあるものと同じに見える・・・) 何か他に注意することがあるのでしょうか? | ||||
|
投稿日時: 2008-08-19 17:48
自己レスです。
BaseFont.AddToResourceSearch("iTextAsian-1.0.dll"); に相当する記述が抜けていることが問題でした。 参照設定すればいいのかと思ったら、フォント情報をリソースに 埋め込んでいるようなので、それを明示的にロードしないと だめだったようです。 ということで、私もうまく動作しました。 | ||||
|
投稿日時: 2008-10-30 21:20
.NET2.0での解決法が出てないようなので。
System.Reflection.Assembly.LoadFrom(Server.MapPath("~") + "\\Bin\\iTextAsian.dll"); を入れれば出来そうです。 |
1