使用了itext2.1.7制作一个简单的word,代码如下:
import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import com.lowagie.text.Cell; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.Element; import com.lowagie.text.Font; import com.lowagie.text.HeaderFooter; import com.lowagie.text.Image; import com.lowagie.text.PageSize; import com.lowagie.text.Paragraph; import com.lowagie.text.Phrase; import com.lowagie.text.Table; import com.lowagie.text.pdf.BaseFont; import com.lowagie.text.rtf.RtfWriter2; import com.lowagie.text.rtf.field.RtfPageNumber; import com.lowagie.text.rtf.field.RtfTotalPageNumber; import com.lowagie.text.rtf.graphic.RtfShape; import com.lowagie.text.rtf.graphic.RtfShapePosition; import com.lowagie.text.rtf.headerfooter.RtfHeaderFooter; public class 答题卡制作_S4_Test { public List<String> getContentByHorizontal(int startIndex, int endIndex, int colNum, String beforeSpan, String span) { List<String> result = new ArrayList<String>(); int totalRow = (endIndex - startIndex - 1) / colNum + 1;// 总行数 for (int i = 1; i <= totalRow; i++) { StringBuffer sb = new StringBuffer(); for (int j = 1; j <= colNum; j++) { int line = (i - 1) * colNum + j - 1 + startIndex; if (line > endIndex) { break; } sb.append(line).append(beforeSpan).append(span); } result.add(sb.toString()); } /*for (String str : result) { System.out.println(str); }*/ return result; } public List<String> getContentByVertical(int startIndex, int endIndex, int colNum, String beforeSpan, String span) { List<String> result = new ArrayList<String>(); int totalRow = (endIndex - startIndex - 1) / colNum + 1;// 总行数 for (int i = 1; i <= totalRow; i++) { StringBuffer sb = new StringBuffer(); for (int j = 1; j <= colNum; j++) { int line = (j - 1) * totalRow + i - 1 + startIndex; if (line > endIndex) { break; } sb.append(line).append(beforeSpan).append(span); } result.add(sb.toString()); } /*for (String str : result) { System.out.println(str); }*/ return result; } public void createDocContext(String file) throws DocumentException, IOException { // 设置纸张大小 Document document = new Document(PageSize.A4); // 建立一个书写器,与document对象关联 RtfWriter2.getInstance(document, new FileOutputStream(file)); document.open(); // 设置中文字体 BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); Font font2 = new Font(bfChinese, 12, Font.UNDERLINE);// 下划线 // 页眉 Image headerImage = Image.getInstance("F:/saveFile/temp/test.jpg"); headerImage.scaleAbsolute(430, 30); Paragraph headerImgPara = new Paragraph(); RtfHeaderFooter headerImg = new RtfHeaderFooter(headerImage); headerImgPara.add(headerImg); Phrase headerPara2 = new Phrase(); headerPara2.add(headerImgPara); headerPara2.setFont(font2); HeaderFooter header = new HeaderFooter(headerPara2, false); header.setAlignment(Paragraph.ALIGN_CENTER); document.setHeader(header); RtfShapePosition position = new RtfShapePosition(100, 900, 9600, 100); position.setXRelativePos(RtfShapePosition.POSITION_X_RELATIVE_MARGIN); position.setYRelativePos(RtfShapePosition.POSITION_Y_RELATIVE_PARAGRAPH); RtfShape shape = new RtfShape(RtfShape.SHAPE_LINE, position); Paragraph par = new Paragraph(); par.add(shape); document.add(par); // 标题字体风格 Font titleFont = new Font(bfChinese, 20, Font.BOLD); // 正文字体风格 Font contextNomalFont = new Font(bfChinese, 11, Font.BOLD); Font contextTextFont = new Font(bfChinese, 11, Font.NORMAL); Paragraph paragraph = new Paragraph(); paragraph.setIndentationLeft(50); document.add(paragraph); paragraph = new Paragraph( "七年级上册Unit2 This is just a test. sectionA测试卷答题卡"); // 设置标题格式对齐方式 paragraph.setAlignment(Element.ALIGN_CENTER); paragraph.setFont(titleFont); paragraph.setIndentationLeft(50); paragraph.setIndentationRight(50); document.add(paragraph); paragraph = new Paragraph("班级:________ 姓名:________"); paragraph.setAlignment(Element.ALIGN_CENTER); paragraph.setFont(contextTextFont); document.add(paragraph); paragraph = new Paragraph("一、单选题"); paragraph.setAlignment(Element.ALIGN_LEFT); paragraph.setFont(contextNomalFont); paragraph.setFirstLineIndent(60); document.add(paragraph); List<String> choiceList = getContentByHorizontal(1, 18, 4, " ", "[A][B][C][D] "); choiceList = getContentByVertical(1, 18, 4, " ", "[A][B][C][D] "); for (String str : choiceList) { // paragraph = new // Paragraph("1 [A][B][C][D] 2 [A][B][C][D] 3 [A][B][C][D] 4 [A][B][C][D]"); paragraph = new Paragraph(str); paragraph.setSpacingBefore(5); paragraph.setAlignment(Element.ALIGN_LEFT); paragraph.setFont(contextTextFont); paragraph.setFirstLineIndent(70); document.add(paragraph); } paragraph = new Paragraph("二、填空题"); paragraph.setSpacingBefore(20); paragraph.setAlignment(Element.ALIGN_LEFT); paragraph.setFont(contextNomalFont); paragraph.setFirstLineIndent(60); document.add(paragraph); List<String> packList = getContentByHorizontal(4, 12, 3, ".", "________________ "); for (String str : packList) { // paragraph = new // Paragraph("4.________________ 5.________________ 6.________________"); paragraph = new Paragraph(str); paragraph.setAlignment(Element.ALIGN_LEFT); paragraph.setFont(contextTextFont); paragraph.setSpacingBefore(3); paragraph.setFirstLineIndent(70); document.add(paragraph); } // 页眉页脚字体风格 Font headerFooterFont = new Font(bfChinese, 10, Font.BOLD); Paragraph paraFooter = new Paragraph(); paraFooter.add(new Phrase("第", headerFooterFont)); paraFooter.add(new RtfPageNumber()); paraFooter.add(new Phrase("页 共", headerFooterFont)); paraFooter.add(new RtfTotalPageNumber()); paraFooter.add(new Phrase("页", headerFooterFont)); paraFooter.setAlignment(Paragraph.ALIGN_CENTER); paraFooter.setFont(headerFooterFont); document.setFooter(new RtfHeaderFooter(paraFooter)); document.close(); } public static void main(String[] args) { 答题卡制作_S4_Test word = new 答题卡制作_S4_Test(); String file = "f:/saveFile/temp/sys_16_test.doc"; try { word.createDocContext(file); } catch (DocumentException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
结果如下:
全文完。
相关推荐
IText 2.1.7是一个强大的PDF处理库,对于Java开发者来说,它提供了丰富的功能,可以满足各种PDF生成需求。通过熟悉其API和示例,我们可以轻松地在项目中集成PDF生成功能,无论是简单的文本报告,还是复杂的报表和...
总的来说,IText 2.1.7是一个强大而全面的PDF处理工具,它简化了PDF在Java应用中的使用,无论是生成新的PDF文档,还是处理已有的PDF文件,都提供了极大的便利。不过,需要注意的是,随着版本的更新,新版本的IText...
2. **iText-src-2.1.7.zip**:这个文件包含iText 2.1.7的源代码,对于开发者来说,这是一个宝贵的资源。通过查看源代码,用户可以深入理解iText内部的工作机制,便于自定义扩展或调试代码。源代码也方便学习和教育...
在这个例子中,我们首先注册了一个新的字体,然后创建了一个使用该字体的段落,并将其添加到PDF文档中。`BaseFont.IDENTITY_H`编码表示每个字节对应一个Unicode码点,这对于包含中文字符的文本非常重要。 除了基本...
iText是一个强大的开源Java库,用于生成和修改PDF文档。在本篇中,我们将深入探讨如何利用iText 2.1.7版本动态生成PDF实例,包括基本概念、关键类和方法的使用。 首先,我们需要了解iText的核心类。`Document`是...
赠送jar包:itext-2.1.7.jar; 赠送原API文档:itext-2.1.7-javadoc.jar; 赠送源代码:itext-2.1.7-sources.jar; 赠送Maven依赖信息文件:itext-2.1.7.pom; 包含翻译后的API文档:itext-2.1.7-javadoc-API文档-...
iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与javaServlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。 相关...
iText是一个强大的开源库,它不仅支持生成PDF,还能够处理RTF(Rich Text Format)文件,从而实现创建Word文档的功能。本文将详细介绍如何利用iText库在Java中实现Word文档的生成,包括添加段落、插入图片和设置页码...
赠送jar包:itext-2.1.7.jar; 赠送原API文档:itext-2.1.7-javadoc.jar; 赠送源代码:itext-2.1.7-sources.jar; 赠送Maven依赖信息文件:itext-2.1.7.pom; 包含翻译后的API文档:itext-2.1.7-javadoc-API文档-...
以下是一个简单的iText示例,展示如何创建一个包含标题和段落的PDF文档: ```java import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import ...
总之,IText 2.1.7是一个强大且灵活的PDF生成工具,对于Java开发者来说,是创建PDF文档的理想选择。无论是简单的文本输出,还是复杂的布局设计,都能通过这个库轻松实现。同时,开发者社区的广泛支持使得学习和使用...
首先,`itext-2.1.7`是开源Java库iText的一个版本,用于创建、修改和操作PDF文档。这个版本的源码包提供了对iText内部工作原理的深入理解。其次,标题指出存在一个问题,即在使用iText生成PDF时,中文标点符号可能会...
在2.1.7版本中,它包含了一个全面的核心库,支持各种PDF操作,并且在这个版本中还整合了对RTF(Rich Text Format)的支持,使得用户可以方便地进行Word文档的操作。RTF是一种通用的文本格式,能够保留文本的格式信息...
iText2.1.7.rar jar包及文件说明
网上找了篇wangyanjun(bd_wyj@sina.com)写的帖子,讲述如何使用iText写word文档,去官方网站找了jar包,建了一工程,测试通过,特拿出来和大家共享。相关帖子地址:http://linder0209.iteye.com/blog/202516
iText是一个强大的库,能够帮助开发者轻松创建和编辑PDF及Word文档。本文将详细介绍如何使用iText 2.1.7版本来实现这一功能,并探讨其主要特性。 iText是一个开源的Java库,主要用于生成和处理PDF文档。此外,通过...
itext-2.1.7.js1.jar、itext-2.1.7.js2.jar、itext-2.1.7.js3.jar、itext-2.1.7.js4.jar、itext-2.1.7.js5.jar、itext-2.1.7.js6.jar、itext-2.1.7.js7.jar、itext-2.1.7.js8.jar、itext-2.1.7.js9.jar、itext-2.1.7...
iText 2.1.7.js8是该库的一个特定版本,尽管较新版本已发布,但在某些项目中,这个版本可能仍能提供所需的稳定性和兼容性。 JasperReports则是开源的报表生成工具,它允许用户通过设计复杂的报表模板,然后用各种...