web应用票据打印实现(三)

来源:互联网 发布:化工软件有哪些 编辑:程序博客网 时间:2024/05/21 21:36

itext是一个开源库,用以动态的创建、修改pdf文件。通过itext,我们就可以在上一篇创建的pdf模板中填入数据,生成供打印用的pdf文档了。

首先我们需要打开模板,者通过创建一个PdfReader 对象来实现:

String printableTemplate = ... //模板文件的路径PdfReader printableReader = new PdfReader(printableTemplate);

接下来还需要创建一个PdfStamper对象来向模板中添加数据:

String fileName = "your_file_name";printableStamper = new PdfStamper(printableReader, new FileOutputStream(fileName));

从PdfStamper对象中得到模板中全部的表单域

AcroFields printableForm = printableStamper.getAcroFields();    

将数据填入模板:

for (Map.Entry<String,  String> entry: printableDocument.getTemplateFieldValueMap().entrySet()) {    printableForm.setField(entry.getKey(), entry.getValue());}

通过setFormFlattening(true)来去除pdf中的表单,这使的pdf文档不能再次编辑,但也减少了文档的大小。最后关闭PdfStamper对象即在fileName路径处创建了我们最终用来打印的pdf文档。

printableStamp.setFormFlattening(true);         printableStamp.close();     

关于更多itext库的用法,可以参考iText in Action 这本书:

0 0