使用了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 jar 包 此包可用来导出word文档 ,此文件含有使用itext生成word文档的所需的所有jar文件
赠送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的输出。 相关...
iText2.1.7.rar jar包及文件说明
赠送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 2.1.7的版本(后续版本就变成GPL协议,商业使用变成要收费的),开源免费试用,附带demo,亲测可用,java生成pdf
网上找了篇wangyanjun(bd_wyj@sina.com)写的帖子,讲述如何使用iText写word文档,去官方网站找了jar包,建了一工程,测试通过,特拿出来和大家共享。相关帖子地址:http://linder0209.iteye.com/blog/202516
java生成pdf包,IText2.1.7,工具包,iText-2.1.7.jar,iTextAsian.jar,itext-rtf-2.1.7.jar,iReport.jar
iText-2.1.7.jar iText-src-2.1.7.zip (源代码) iTextAsian.jar (亚洲语言字库) iText-docs-2.1.7.tar.gz (说明文档)
itext2.1.7 Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/lowagie/text/pdf/FontMapp
NULL 博文链接:https://weigang-gao.iteye.com/blog/2224191
Java利用Itext2.1.7生成word需要jar及doc.rar
iText-2.1.7.jar资源包,可以调用方法实现生成PDF文件! iTextAsian.jar可以解决生成PDF文件为中文的问题!
主要针对于java生成PDF文档使用,包括打印。当中包含了所有针对于生成pdf的jar包,可直接使用,例子的话可以参考网上有很多!
iText-2.1.7.js2.jar iTextAsian.jar iTextAsianCmaps.jar itext-rtf-2.1.7.jar iText-2.1.7.js2.jar iTextAsian.jar iTextAsianCmaps.jar itext-rtf-2.1.7.jar 能够配合最新ireport5.6.0的全套汉字jar包
Java使用低版本poi 3.8 + itext 2.1.7 + itextasian.1.5.2 实现word转PDF,并解决下面的问题: 1. word转PDF后的字体样式问题(包括字体对齐、加粗、倾斜、字体大小等); 2. word转PDF后的段落样式问题(包括:首行...
itext未将rtf(操作word)分离前版本。 整合了rtf以及api说明。
itext-rtf-2.1.7.jar,iTextAsian.jar,iText-5.0.6.jar,itext-2.1.7.jar