itext导出文字图片到word

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;

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值