在项目中涉及到合同下载和说明书下载,合同下载是其他的同事交接到我手里面的活,之前也没做过合同相关的东西,光听就是多么高大上的东西,但是接触后你就知道 什么他么的玩意啊 ,这么简单。但是简单也是在使用外部jar包的情况下,那就是itext了。需要使用到的jar请见附件。
itext在使用方面确实挺好用的,不管是生成pdf或者是word文档,全能够实现(最起码我在项目中实现功能是完全可以了,还有就是我的这些个东西也是在参考其他文件的基础上完成的)
itext在生成pdf文件中,有两种实现机制:第一、可以通过模板类来完善pdf文档
第二、可以不使用模板自己生成pdf文档
第一,使用模板类完善pdf文档
PdfReader pdfTemplate = new PdfReader(inFile);--------------读取模板类流
FileOutputStream fileOutputStream = new FileOutputStream(outFile);----------输出指定文件的输出流
PdfStamper stamper = new PdfStamper(pdfTemplate, fileOutputStream); -------模板和最终结果结合
stamper.setFormFlattening(true);
//通过使用pdf阅读编辑软件操作pdf文件,给pdf文件赋予表单域,并给出属性名称,然后通过itext来找到相对应的属性名称,并且给这个属性名称代表的表单域进行赋值(推荐使用Adobe Acrobat软件来编辑pdf文件......)
stamper.getAcroFields().setField("contract_series","" );
stamper.getAcroFields().setField("bid_real_name", "");
stamper.getAcroFields().setField("bid_money", "");
stamper.close();
pdfTemplate.close();
第二、不使用模板生成pdf文件,直接生成
Document doc = new Document();
try {
PdfWriter.getInstance(doc, new FileOutputStream("d:\\createSamplePDF.pdf"));
} catch (Exception e1) {
e1.printStackTrace();
}
doc.open();
RtfFont titleFont = new RtfFont("仿宋_GB2312", 20, Font.NORMAL,
Color.BLACK);
RtfFont contextFont = new RtfFont("仿宋_GB2312", 15, Font.NORMAL,
Color.BLACK);
try {
Table table = new Table(12, 16);
int[] withs = { 3, 9, 5, 4, 4, 3, 3, 14, 14, 14, 14, 14 };
/** 设置每列所占比例 author:yyli Sep 15, 2010 */
table.setWidths(withs);
/** 表格所占页面宽度 author:yyli Sep 15, 2010 */
table.setWidth(100);
/** 居中显示 author:yyli Sep 15, 2010 */
table.setAlignment(Element.ALIGN_CENTER);
/** 自动填满 author:yyli Sep 15, 2010 */
table.setAutoFillEmptyCells(true);
String titleString = "债权说明书";
Paragraph title = new Paragraph(titleString);
// 设置标题格式对其方式
title.setAlignment(Element.ALIGN_CENTER);
title.setFont(titleFont);
doc.add(title);
String contextString ="尊敬的冯长辉先生 ,您好!";
Paragraph context = new Paragraph(contextString);
// 正文格式对齐方式
context.setAlignment(Element.ALIGN_LEFT);
context.setFont(contextFont);
// 与上一段落(标题)的行距
context.setSpacingBefore(10);
// 设置第一行空的列数(缩进)
// context.setFirstLineIndent(20);
doc.add(context);
String contextString2 =" 货币单位:人民币(元)";
Paragraph context2 = new Paragraph(contextString2);
// 正文格式对齐方式
context2.setAlignment(Element.ALIGN_LEFT);
context2.setFont(contextFont);
// 与上一段落(标题)的行距
context2.setSpacingBefore(10);
// 设置第一行空的列数(缩进)
// context.setFirstLineIndent(20);
doc.add(context2);
Cell[] cellHeaders = new Cell[11];
cellHeaders[0] = new Cell(new Phrase("序号", contextFont));
cellHeaders[1] = new Cell(new Phrase("课程名称", contextFont));
cellHeaders[2] = new Cell(new Phrase("教师", contextFont));
cellHeaders[3] = new Cell(new Phrase("学分", contextFont));
cellHeaders[4] = new Cell(new Phrase("上课周次", contextFont));
cellHeaders[5] = new Cell(new Phrase(" ", contextFont));
cellHeaders[5].setColspan(2);
cellHeaders[6] = new Cell(new Phrase("星期一", contextFont));
cellHeaders[7] = new Cell(new Phrase("星期二", contextFont));
cellHeaders[8] = new Cell(new Phrase("星期三", contextFont));
cellHeaders[9] = new Cell(new Phrase("星期四", contextFont));
cellHeaders[10] = new Cell(new Phrase("星期五", contextFont));
table.addCell(cellHeaders[0]);
table.addCell(cellHeaders[1]);
table.addCell(cellHeaders[2]);
table.addCell(cellHeaders[3]);
table.addCell(cellHeaders[4]);
table.addCell(cellHeaders[5]);
table.addCell(cellHeaders[6]);
table.addCell(cellHeaders[7]);
table.addCell(cellHeaders[8]);
table.addCell(cellHeaders[9]);
table.addCell(cellHeaders[10]);
doc.add(table);
doc.close();
} catch (Exception e) {
e.printStackTrace();
}
------------------------------------------------------------------------------------使用itext生成word文档,请参考http://outofmemory.cn/code-snippet/1892/usage-iText-word-document-insert-complex-form
/******************************************word*********************************************************/
Document doc = new Document();
try {
RtfWriter2.getInstance(doc, new FileOutputStream("d:\\createSamplePDF.doc"));
} catch (Exception e1) {
e1.printStackTrace();
}
// ByteArrayOutputStream baos = new ByteArrayOutputStream();
// RtfWriter2.getInstance(doc, baos);
doc.open();
RtfFont titleFont = new RtfFont("仿宋_GB2312", 20, Font.NORMAL,
Color.BLACK);
RtfFont contextFont = new RtfFont("仿宋_GB2312", 15, Font.NORMAL,
Color.BLACK);
try {
Table table = new Table(12, 16);
int[] withs = { 3, 9, 5, 4, 4, 3, 3, 14, 14, 14, 14, 14 };
/** 设置每列所占比例 author:yyli Sep 15, 2010 */
table.setWidths(withs);
/** 表格所占页面宽度 author:yyli Sep 15, 2010 */
table.setWidth(100);
/** 居中显示 author:yyli Sep 15, 2010 */
table.setAlignment(Element.ALIGN_CENTER);
/** 自动填满 author:yyli Sep 15, 2010 */
table.setAutoFillEmptyCells(true);
String titleString = "债权说明书";
Paragraph title = new Paragraph(titleString);
// 设置标题格式对其方式
title.setAlignment(Element.ALIGN_CENTER);
title.setFont(titleFont);
doc.add(title);
String contextString ="尊敬的冯长辉先生 ,您好!";
Paragraph context = new Paragraph(contextString);
// 正文格式对齐方式
context.setAlignment(Element.ALIGN_LEFT);
context.setFont(contextFont);
// 与上一段落(标题)的行距
context.setSpacingBefore(10);
// 设置第一行空的列数(缩进)
// context.setFirstLineIndent(20);
doc.add(context);
String contextString2 =" 货币单位:人民币(元)";
Paragraph context2 = new Paragraph(contextString2);
// 正文格式对齐方式
context2.setAlignment(Element.ALIGN_LEFT);
context2.setFont(contextFont);
// 与上一段落(标题)的行距
context2.setSpacingBefore(10);
// 设置第一行空的列数(缩进)
// context.setFirstLineIndent(20);
doc.add(context2);
Cell[] cellHeaders = new Cell[11];
cellHeaders[0] = new Cell(new Phrase("序号", contextFont));
cellHeaders[1] = new Cell(new Phrase("课程名称", contextFont));
cellHeaders[2] = new Cell(new Phrase("教师", contextFont));
cellHeaders[3] = new Cell(new Phrase("学分", contextFont));
cellHeaders[4] = new Cell(new Phrase("上课周次", contextFont));
cellHeaders[5] = new Cell(new Phrase(" ", contextFont));
cellHeaders[5].setColspan(2);
cellHeaders[6] = new Cell(new Phrase("星期一", contextFont));
cellHeaders[7] = new Cell(new Phrase("星期二", contextFont));
cellHeaders[8] = new Cell(new Phrase("星期三", contextFont));
cellHeaders[9] = new Cell(new Phrase("星期四", contextFont));
cellHeaders[10] = new Cell(new Phrase("星期五", contextFont));
table.addCell(cellHeaders[0]);
table.addCell(cellHeaders[1]);
table.addCell(cellHeaders[2]);
table.addCell(cellHeaders[3]);
table.addCell(cellHeaders[4]);
table.addCell(cellHeaders[5]);
table.addCell(cellHeaders[6]);
table.addCell(cellHeaders[7]);
table.addCell(cellHeaders[8]);
table.addCell(cellHeaders[9]);
table.addCell(cellHeaders[10]);
doc.add(table);
doc.close();
} catch (Exception e) {
e.printStackTrace();
}
参考文档:http://www.360doc.com/content/10/0424/17/633992_24681953.shtml
相关推荐
"word to pdf word xml to pdf"这个主题聚焦于将Microsoft Word文档转换为PDF格式,以及XML数据如何转化为PDF。下面将详细阐述这两个过程。 首先,我们来看“word to pdf”转换。Microsoft Word是一款广泛使用的...
pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换pdfword转换器支持批量转换...
标题 "wordToPDF_pdfword_word转pdf_word转pdf_pdf_firehhy_源码.rar.rar" 暗示了这是一个关于将Word文档转换为PDF格式的软件或工具的源代码包。描述中的内容与标题相同,进一步确认了这个压缩包包含的是与Word到PDF...
PDF和Word是两种常见的文档格式,每种都有其独特的特性和用途。PDF(Portable Document Format)主要用于保持文档的原始布局和格式,而Word(Microsoft Word)则是一个强大的文本编辑工具,适合创建、编辑和格式化...
PDF Word Converter V2 一站式文档转换解决方案 功能亮点: PDF 转 Word:轻松将 PDF 文档转换为可编辑的 Word 文件,保持原有格式和布局。 Word 转 PDF:将 Word 文档转换为 PDF 格式,确保跨平台的文档一致性和...
最好的 最好用的 word2pdf 工具 软件 word转pdf word批量转pdf batchwork.doc.to.pdf.converter.cr 资源管理器 内含安装步骤安装方案 安装完毕后为正版 xp win7 win8 win10均可用 支持资源管理器右键菜单
在IT行业中,转换文档格式是一项常见的任务,例如将Word文档转换为PDF。在这个场景中,我们看到一个关于如何使用Java编程语言实现此功能的资源包:“利用poi+itextpdf进行word转pdf.rar”。这个压缩包包含源码、依赖...
将word转换成pdf确实有很多种方案!最近正好需要做一个这样的功能,需求是将word模板进行签名后转换为pdf。为此,我花了一点时间去网上找方案。这里记录一下最终的方案:利用poi+itextpdf进行word转pdf。此资源按...
用于添加水印,PDF Word 文档等添加水印
pdf word转换 轻松实现转换 如果你是收到这样的困扰--pdf与word 文档无法转换 那么这个软件就可以帮你解决问题!
IText是一款广泛使用的Java库,专门用于创建和编辑PDF及Word文档。在本文中,我们将深入探讨如何利用IText库生成这两种格式的文档,并通过实际的源码示例来理解其工作原理。 首先,让我们从PDF(Portable Document ...
PDFword2.0是一款强大的文件转换工具,专为用户提供了便捷的PDF到Word转换功能,使得处理文档格式转换变得更加简单高效。在当前数字化办公环境中,文件格式的互换经常是必不可少的需求,PDFword2.0正好满足了这一...
离线的pdf转word小工具,不需要网络。 内涵源码及编译后的小程序。 程序使用pyqt5实现,同时打印输出日志。 代码使用需要pdf2docx三方包实现,为了在前台打印更多日志,将三方包中的Converter类进行了改进,将def _...
汉王PDF转Word工具是一款专为用户解决PDF文档与Word文档相互转换问题的软件。它以其高识别率和高效转换速度赢得了用户的广泛好评。在处理PDF文档时,我们经常遇到需要将PDF内容编辑或修改的情况,而PDF的格式通常...
文档POI只支持往生成的中填入文本,对于图片根本就不支持。使用itext 生成rtf格式的直接保存为word
PDFWord互转破解,solidconverterpdf_3.0
自制pdf转word实用小工具!无付费无限制随便转
PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转WORD程序PDF转...
PDF和Word是两种广泛使用的文档处理工具,它们在日常办公和学术交流中扮演着重要角色。"牛X的组件"可能是指一些高级或强大的插件、工具或功能,旨在提升PDF和Word的处理效率和效果。下面将详细介绍这两个领域的关键...