【itext】按要求生成pdf文件

问题产生:

想根据不同的用户填写不同的信息在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源码太难,我实在是太难了!!!哈哈哈哈。先搁着。

发布了56 篇原创文章 · 获赞 18 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_40726316/article/details/101544589
今日推荐