问题产生:
想根据不同的用户填写不同的信息在pdf上对应需要改变的内容上,并生成pdf,即pdf的自定义生成?
有没有类似webupload这样的插件,封装好一系列方法,只需要调用封装好的方法,即可自定义生成pdf?
问题解决:
ITEXT jar包。
public static void CreatePdf(){
try {
Document document = new Document();
PdfWriter pw=PdfWriter.getInstance(document,new FileOutputStream("e://abc.pdf"));
document.open();
//中文无法进行正常显示
document.add(new Paragraph("这是一段话"));
document.add(new Paragraph("这是er段话"));
document.add(new Paragraph("这是san段话"));
BaseFont bf=BaseFont.createFont();//中文自己百度
Font redFont = new Font(bf);
redFont.setColor(BaseColor.RED);
document.add(new Paragraph("这是一段话",redFont));
document.add(new Paragraph("这是er段话",redFont));
document.add(new Paragraph("这是san段话",redFont));
document.close();
pw.close();
} catch (DocumentException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
CreatePdf();
}
看到这里有没有发现问题?
1.pdf的文字写在代码里。
2.生成的pdf格式有点乱,不清晰,是可以处理值变化情况(即在代码文字中间使用变量控制),例如:new Paragraph("这是一段话"+today+",今天哦");
那么,有没有什么方法可以直接把格式固定好,只填充pdf的变量呢?
肯定有,那就是pdf模板,但是我现在还是没懂,同样是pdf文件,itext是通过什么判断pdf模板的域的?而且,我也才知道pdf文件有域这个概念。那我通过word转pdf文件我就不能设置域吗?懵。
我们可以通过adobe acrobat工具生产pdf模板,至于为什么要用adobe acrobat工具,我也不知道,就是不知道,同样是pdf文件,用adobe acrobat工具和不用adobe acrobat工具,pdf文件就有是模板和不是模板的区别吗?在探索中·······
具体操作见:
https://blog.csdn.net/sb_jb/article/details/79106070;
https://www.cnblogs.com/ibeisha/p/itextsharp-pdf.html;
算了,暂时先把pdf模板放一边,至少现在还没懂itext是如何判断pdf模板中的域的,看itext源码太难,我实在是太难了!!!哈哈哈哈。先搁着。