いくつか、注意点があるようだ。
・%>と<%の間に、文字が入るとだめなようだ。
・全角表示のためには、Font font=new Font( BaseFont.createFont( "HeiseiKakuGo-W5", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED ),40 );といったfontの用意が必要。
・UTF-8を扱うための文字コード処理は、よくわからなかったが、以下のようにしたら、うまくいったようだ。 POSTで受け取ったnaiyoというデータを処理している。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%><%@ page import="java.net.*,java.io.*, com.itextpdf.text.Document,com.itextpdf.text.DocumentException,com.itextpdf.text.Font,com.itextpdf.text.PageSize, com.itextpdf.text.Paragraph,com.itextpdf.text.pdf.BaseFont,com.itextpdf.text.pdf.PdfWriter"%><%
response.setContentType( "application/pdf" );
Font font=new Font( BaseFont.createFont( "HeiseiKakuGo-W5", "UniJIS-UCS2-H", BaseFont.NOT_EMBEDDED ),40 );
Document document = new Document();
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
PdfWriter.getInstance( document, buffer );
document.open();
request.setCharacterEncoding("UTF-8");
String naiyo=new String(request.getParameter("naiyo").getBytes("UTF-8"),"UTF-8");
Paragraph preface = new Paragraph();
preface.add( new Paragraph(naiyo, font));
document.add(preface);
document.close();
DataOutput output = new DataOutputStream( response.getOutputStream() );
byte[] bytes = buffer.toByteArray();
response.setContentLength(bytes.length);
for( int i = 0; i < bytes.length; i++ ) { output.writeByte( bytes[i] ); }
%>
以下のリンクを参照させていただきました。
http://atmarkplant-dj.blogspot.jp/2012/04/java-pdf-itext2.html
http://okwave.jp/qa/q7682351.html
以下のリンクを参照させていただきました。
http://atmarkplant-dj.blogspot.jp/2012/04/java-pdf-itext2.html
http://okwave.jp/qa/q7682351.html
0 件のコメント:
コメントを投稿