1 引入jar包;下载对应的jar包或者maven引入:
<!-- https://mvnrepository.com/artifact/com.lowagie/itext -->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.lowagie/itext-rtf -->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext-rtf</artifactId>
<version>2.1.4</version>
</dependency>
2 基本使用
主要用到这么几个类
2.1 Document,可以理解为导出的文件对象;可以用来设置“纸张”的大小,创建新页面;
// 1.1创建 Document对象
Document document = new Document(PageSize.A4);
File file = new File("F:\\bpe\\ee.doc");
//1.2读入文件到内存
RtfWriter2.getInstance(document, new FileOutputStream(file));
2.2 Paragraph,可以理解我I一个“段落”,一版会另起一行;可以设置段落样式,间距等;
String contextString = "段落内容-现代新诗史上一个重要的诗歌流派,该诗派大体上以1927年为界分为"
+ "前后两个时期。前期自1926年春始,以北京的《晨报副刊 诗镌》为阵地,主要成员有闻一多、徐志摩、"
+ "朱湘、饶孟侃、孙大雨、刘梦苇等。他们不满于“五四”以后“自由诗人”忽视诗艺的作风,提倡新格律诗,"
+ "主张“理性节制情感”,反对滥情主义和诗的散文化倾向,从理论到实践上对新诗的格律化进行了认真的探索";
Paragraph context = new Paragraph(contextString);
// 正文格式左对齐
context.setAlignment(Element.ALIGN_LEFT);
2.3 Image 元素,图片;Font-样式相关设置
其中图片,段落,和文档都可以设置样式,格式,排版布局,具体可以查询源码;
3 一个例子
package com.w008.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import com.bpe.core.util.ImgUtil;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.rtf.RtfWriter2;
import sun.misc.BASE64Decoder;
public class WordItextUtil {
/**
*
*/
public static void exportDocT() throws DocumentException, IOException {
// 1.1创建 Document对象
Document document = new Document(PageSize.A4);
File file = new File("F:\\bpe\\ee.doc");
//1.2读入文件到内存
RtfWriter2.getInstance(document, new FileOutputStream(file));
document.open();
// 标题字体风格
Font font = new Font();
//2 段落
Paragraph title = new Paragraph("文档主题-现代诗");
// 设置标题格式对齐方式
title.setAlignment(Element.ALIGN_CENTER);
title.setFont(font);
//写入
document.add(title);
String contextString = "段落内容-现代新诗史上一个重要的诗歌流派,该诗派大体上以1927年为界分为"
+ "前后两个时期。前期自1926年春始,以北京的《晨报副刊 诗镌》为阵地,主要成员有闻一多、徐志摩、"
+ "朱湘、饶孟侃、孙大雨、刘梦苇等。他们不满于“五四”以后“自由诗人”忽视诗艺的作风,提倡新格律诗,"
+ "主张“理性节制情感”,反对滥情主义和诗的散文化倾向,从理论到实践上对新诗的格律化进行了认真的探索";
Paragraph context = new Paragraph(contextString);
// 正文格式左对齐
context.setAlignment(Element.ALIGN_LEFT);
// 离上一段落(标题)空的行数
context.setSpacingBefore(5);
// 设置第一行空的列数
context.setFirstLineIndent(20);
BASE64Decoder decoder = new BASE64Decoder();
String base64String = ImgUtil.latex2PngNoImg("40\\%");//这个方法可以获取一个base64的字符串
byte[] imageByte = decoder.decodeBuffer(base64String);//图片-- 字节流方式写入
Image img = Image.getInstance(imageByte);
img.setAbsolutePosition(0, 0);
img.setAlignment(Image.LEFT);// 设置图片显示位置
context.add(img);
document.add(context);
Paragraph context2 = new Paragraph("新段落内容");
context2.add("新的文字");
document.add(context2);
Image img1 = Image.getInstance("F:\\bpe\\timg.jpg");//图片--路径方式写入
document.add(img1);
document.newPage();//新页面
context = new Paragraph("新页面内容");//
document.add(context);
//关闭
document.close();
}
public static void main(String[] args) {
try {
exportDocT();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//
}
}
4 结果展示;
5 一点儿问题;当文档以.docx方式保存时,用wps可以打开,而用word2016等打开报错,且无法转成pdf;