`
53873039oycg
  • 浏览: 843902 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[简单]使用itext2.1.7制作一个简单的word(2003)

    博客分类:
  • java
 
阅读更多

        使用了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();
		}
	}
}

     结果如下:

    

      全文完

 

  • 大小: 80.3 KB
0
0
分享到:
评论

相关推荐

    itext 2.1.7工具包及demo,java生成pdf

    IText 2.1.7是一个强大的PDF处理库,对于Java开发者来说,它提供了丰富的功能,可以满足各种PDF生成需求。通过熟悉其API和示例,我们可以轻松地在项目中集成PDF生成功能,无论是简单的文本报告,还是复杂的报表和...

    IText 2.1.7 jar 包

    总的来说,IText 2.1.7是一个强大而全面的PDF处理工具,它简化了PDF在Java应用中的使用,无论是生成新的PDF文档,还是处理已有的PDF文件,都提供了极大的便利。不过,需要注意的是,随着版本的更新,新版本的IText...

    itext 2.1.7

    2. **iText-src-2.1.7.zip**:这个文件包含iText 2.1.7的源代码,对于开发者来说,这是一个宝贵的资源。通过查看源代码,用户可以深入理解iText内部的工作机制,便于自定义扩展或调试代码。源代码也方便学习和教育...

    itext2.1.7和iTextAsian解决中文问题资源包

    在这个例子中,我们首先注册了一个新的字体,然后创建了一个使用该字体的段落,并将其添加到PDF文档中。`BaseFont.IDENTITY_H`编码表示每个字节对应一个Unicode码点,这对于包含中文字符的文本非常重要。 除了基本...

    itext2.1.7动态生成PDF实例

    iText是一个强大的开源Java库,用于生成和修改PDF文档。在本篇中,我们将深入探讨如何利用iText 2.1.7版本动态生成PDF实例,包括基本概念、关键类和方法的使用。 首先,我们需要了解iText的核心类。`Document`是...

    itext-2.1.7-API文档-中文版.zip

    赠送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文档-...

    iText2.1.7资料大全(制作PDF的java开源框)

    iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的。它的类库尤其与javaServlet有很好的给合。使用iText与PDF能够使你正确的控制Servlet的输出。 相关...

    itext-2.1.7.jar itext-rtf-2.1.7.jar

    iText是一个强大的开源库,它不仅支持生成PDF,还能够处理RTF(Rich Text Format)文件,从而实现创建Word文档的功能。本文将详细介绍如何利用iText库在Java中实现Word文档的生成,包括添加段落、插入图片和设置页码...

    itext-2.1.7-API文档-中英对照版.zip

    赠送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.rar

    以下是一个简单的iText示例,展示如何创建一个包含标题和段落的PDF文档: ```java import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; import com.itextpdf.text.pdf.PdfWriter; import ...

    Itext2.1.7 jar包

    总之,IText 2.1.7是一个强大且灵活的PDF生成工具,对于Java开发者来说,是创建PDF文档的理想选择。无论是简单的文本输出,还是复杂的布局设计,都能通过这个库轻松实现。同时,开发者社区的广泛支持使得学习和使用...

    itext-2.1.7源码包以及 解决iText生成pdf时中文标点存在行首问题的修改class

    首先,`itext-2.1.7`是开源Java库iText的一个版本,用于创建、修改和操作PDF文档。这个版本的源码包提供了对iText内部工作原理的深入理解。其次,标题指出存在一个问题,即在使用iText生成PDF时,中文标点符号可能会...

    itext 2.1.7.zip(全套核心库以及rtf,含api介绍).zip

    在2.1.7版本中,它包含了一个全面的核心库,支持各种PDF操作,并且在这个版本中还整合了对RTF(Rich Text Format)的支持,使得用户可以方便地进行Word文档的操作。RTF是一种通用的文本格式,能够保留文本的格式信息...

    iText2.1.7.rar

    iText2.1.7.rar jar包及文件说明

    iText2.1.7创建word文档

    网上找了篇wangyanjun(bd_wyj@sina.com)写的帖子,讲述如何使用iText写word文档,去官方网站找了jar包,建了一工程,测试通过,特拿出来和大家共享。相关帖子地址:http://linder0209.iteye.com/blog/202516

    itext-2.1.7.jar itext-rtf-2.1.7.jar 和源码

    iText是一个强大的库,能够帮助开发者轻松创建和编辑PDF及Word文档。本文将详细介绍如何使用iText 2.1.7版本来实现这一功能,并探讨其主要特性。 iText是一个开源的Java库,主要用于生成和处理PDF文档。此外,通过...

    itext-2.1.7.js.jar包1~10合集

    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.zip

    iText 2.1.7.js8是该库的一个特定版本,尽管较新版本已发布,但在某些项目中,这个版本可能仍能提供所需的稳定性和兼容性。 JasperReports则是开源的报表生成工具,它允许用户通过设计复杂的报表模板,然后用各种...

Global site tag (gtag.js) - Google Analytics