• 締切済み

itextの日本語のエラー(バージョンアップ)

itext-1.3.jarからitextpdf-5.4.0.jarにjavaのプログラムを 移行していますが、日本語が表示出来なくエラーになります。 解決策をお教えください。 インタネットで調べて、 iText(PDFライブラリ)の新しいバージョンで日本語がトラブル件で iTextAsian.jarを解凍、comフォルダの下にあるlowagieフォルダを itextpdfにリネーム、iTextAsian.jarの再圧縮 してみましたが解決出来ません  下記にソースコードが有ります import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; //日本語 //iTextAsian.jar //iTextAsianCmaps.jar //itextpdf-5.4.0.jar エラーになる //import com.itextpdf.text.Document; //import com.itextpdf.text.DocumentException; //import com.itextpdf.text.Font; //import com.itextpdf.text.PageSize; //import com.itextpdf.text.Paragraph; //import com.itextpdf.text.pdf.BaseFont; //import com.itextpdf.text.pdf.PdfWriter; //itext-1.3.jar OK import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Font; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.pdf.PdfWriter; import java.io.ByteArrayOutputStream; public class test12 extends HttpServlet { private static final long serialVersionUID = 1L; public test() { super(); } public static void samplepdf(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); Document document = new Document(PageSize.A4); PdfWriter pdfwriter = null; try { pdfwriter = PdfWriter.getInstance(document, buffer); } catch (DocumentException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } document.open(); BaseFont bf = null; try { bf = BaseFont.createFont("HeiseiKakuGo-W5","UniJIS-UCS2-H",BaseFont.EMBEDDED); Font font = new Font(bf, 12); document.add(new Paragraph("ABCD漢字",font)); } catch (DocumentException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); } document.close(); response.setContentType("application/pdf"); response.setContentLength(buffer.size()); ServletOutputStream output = response.getOutputStream(); output.write(buffer.toByteArray()); output.close(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { samplepdf(request,response); } }

みんなの回答

  • teketon
  • ベストアンサー率65% (141/215)
回答No.1

日本語でエラーが起きているのですか? パッと見た感じ、パッケージ構造が変わりフルクラス名に変更が必要になったということだと思いますが。 移行対象のJavaアプリがClassNotFoundをはいているんじゃないですか? 1.配布されているJarのパッケージ構造を変えるのは悪手です。あなたがパッケージの構造を管理しないといけなくなります。 2.1より、あなたが移行するJavaのプログラムの方でimport文を修正しましょう。 3.移行するJavaのプログラムの修正方法がわからないなら、手を出すべきではありません。 staticを使用したServletなんて、久々に見ました。

すると、全ての回答が全文表示されます。

関連するQ&A