1,刚开始用itext.jar,出错java.lang.NoClassDefFoundErrorcom.lowagie.text.pdf.PdfReader,
出错行:
然后换成最新jar包iText-2.1.5.jar,错误去除。
itext官网 [url]http://www.lowagie.com/iText/[/url]
2,关于中文支持
需要iTextAsian.jar,下载位置:[url]http://prdownloads.sourceforge.net/itext/iTextAsian.jar[/url]
3,servlet接收不到post的表单数据:
<form name="appForm" method="post" ENCTYPE="multipart/form-data">,
原因在于ENCTYPE,enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据;enctype=\"multipart/form-data\"是上传二进制数据; form里面的input的值以2进制的方式传过去,所以这里request就得不到值了,也就是说加了这段代码,用request就会传递不成功。
4,form.setFieldProperty问题。
这里报错是:
java.lang.ClassCastException: com.lowagie.text.Font
at com.lowagie.text.pdf.AcroFields.setFieldProperty(Unknown Source)
原因是:public boolean (String s, String s1, Object obj, int ai[])这里的setFieldProperty第三个参数只能是BaseFont,而不可以是Font.也就是说textfont,需要的是一个BaseFont.
请参照:[url]http://www.nabble.com/Setting-font-on-Acroform-td11007173.html[/url]
[url]http://www.cs.bris.ac.uk/maintain/itext/com/lowagie/text/pdf/AcroFields.html#setFieldProperty(java.lang.String,%20java.lang.String,%20int,%20int[])[/url]
出错行:
PdfReader reader = new PdfReader(TemplatePDF);
然后换成最新jar包iText-2.1.5.jar,错误去除。
itext官网 [url]http://www.lowagie.com/iText/[/url]
2,关于中文支持
BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bf, 12, Font.NORMAL);
需要iTextAsian.jar,下载位置:[url]http://prdownloads.sourceforge.net/itext/iTextAsian.jar[/url]
3,servlet接收不到post的表单数据:
<form name="appForm" method="post" ENCTYPE="multipart/form-data">,
原因在于ENCTYPE,enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据;enctype=\"multipart/form-data\"是上传二进制数据; form里面的input的值以2进制的方式传过去,所以这里request就得不到值了,也就是说加了这段代码,用request就会传递不成功。
4,form.setFieldProperty问题。
BaseFont bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bf, 12, Font.NORMAL);
AcroFields form = stamp.getAcroFields();
form.setFieldProperty("shipName","textfont",FontChinese,null);
这里报错是:
java.lang.ClassCastException: com.lowagie.text.Font
at com.lowagie.text.pdf.AcroFields.setFieldProperty(Unknown Source)
原因是:public boolean (String s, String s1, Object obj, int ai[])这里的setFieldProperty第三个参数只能是BaseFont,而不可以是Font.也就是说textfont,需要的是一个BaseFont.
请参照:[url]http://www.nabble.com/Setting-font-on-Acroform-td11007173.html[/url]
[url]http://www.cs.bris.ac.uk/maintain/itext/com/lowagie/text/pdf/AcroFields.html#setFieldProperty(java.lang.String,%20java.lang.String,%20int,%20int[])[/url]