您的位置:首页 > 编程语言 > Java开发

Java创建写入word文档图片和文字

2017-12-07 11:36 543 查看
需要的jar

<!-- 写word -->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext-rtf</artifactId>
<version>2.1.7</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
package com.test;

import java.awt.Color;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.List;

import com.lowagie.text.BadElementException;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.FontFactory;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.rtf.RtfWriter2;

public class WordTest {
public static void main(String[] args) {
exportDoc();
}

/**
*
* @Description: 将网页内容导出为word @param @param file @param @throws
*               DocumentException @param @throws IOException 设定文件 @return void
*               返回类型 @throws
*/
public static String exportDoc() {
try {
// 设置纸张大小
Document document = new Document(PageSize.A4);
// 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中
// ByteArrayOutputStream baos = new ByteArrayOutputStream();
// C:\\Users\\orion\\Desktop\\home.jpg
File file = new File("C:\\Users\\orion\\Desktop\\qwe.doc");
RtfWriter2.getInstance(document, new FileOutputStream(file));
document.open();
// 设置中文字体
BaseFont bfChinese = BaseFont.createFont(BaseFont.HELVETICA, BaseFont.WINANSI, BaseFont.NOT_EMBEDDED);
// 标题字体风格
// Font titleFont = new Font(bfChinese, 12, Font.BOLD);
// Paragraph title = new Paragraph("测试结果");
// 设置标题格式对齐方式
// title.setAlignment(Element.ALIGN_CENTER);
// title.setFont(titleFont);
// document.add(title);
// 正文字体风格
Font contextFont = new Font(bfChinese, 12, Font.BOLD);
// Font contextFont = new Font(bfChinese, 11, Font.NORMAL);
List<String> list = new ArrayList<>();
list.add("a");
list.add("a");
list.add("a");
list.add("a");
list.add("a");
list.add("a");
list.add("a");
list.add("a");
list.add("a");
for (String string : list) {
// code
String code = "code :  ";
Paragraph codeStyle = new Paragraph(code);
// 正文格式左对齐
codeStyle.setAlignment(Element.ALIGN_LEFT);
codeStyle.setFont(contextFont);
// 离上一段落(标题)空的行数
codeStyle.setSpacingBefore(20);
// 设置第一行空的列数
// context.setFirstLineIndent(0);
document.add(codeStyle);
// 操作
String codeContent = "点击";
Paragraph codeContentStyle = new Paragraph(codeContent, FontFactory
.getFont(FontFactory.HELVETICA_BOLDOBLIQUE, 11, Font.UNDERLINE, new Color(0, 0, 255)));
// 离上一段落(标题)空的行数
codeContentStyle.setSpacingBefore(5);
document.add(codeContentStyle);
// result
String result = "result :";
Paragraph resultStyle = new Paragraph(result);
// 正文格式左对齐
resultStyle.setAlignment(Element.ALIGN_LEFT);
resultStyle.setFont(contextFont);
// 离上一段落空的行数
resultStyle.setSpacingBefore(10);
// 设置第一行空的列数
// context.setFirstLineIndent(0);
document.add(resultStyle);
// 利用类FontFactory结合Font和Color可以设置各种各样字体样式
// 结果
String resultContent = "成功";
Paragraph resultContentStyle = null;
if (resultContent.equals("成功")) {
resultContentStyle = new Paragraph(resultContent, FontFactory
.getFont(FontFactory.HELVETICA_BOLDOBLIQUE, 11, Font.UNDERLINE, new Color(0, 255, 0)));
} else {
resultContentStyle = new Paragraph(resultContent, FontFactory
.getFont(FontFactory.HELVETICA_BOLDOBLIQUE, 11, Font.UNDERLINE, new Color(255, 0, 0)));
}
// 离上一段落空的行数
resultContentStyle.setSpacingBefore(5);
document.add(resultContentStyle);
// 添加图片 Image.getInstance即可以放路径又可以放二进制字节流
String imgPath = "C:\\Users\\orion\\Desktop\\home.jpg";
Image img = Image.getInstance(imgPath);
img.setAbsolutePosition(0, 0);
img.setAlignment(Image.ALIGN_CENTER);// 设置图片显示位置
img.scalePercent(30);// 表示显示的大小为原尺寸的50%
// img.scaleAbsolute(60, 60);// 直接设定显示尺寸
// img.scalePercent(25, 12);//图像高宽的显示比例
// img.setRotation(30);//图像旋转一定角度
document.add(img);
String log = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
if (log != null && !"".equals(log)) {
Paragraph exceptionStyle = new Paragraph("异常信息 :");
// 正文格式左对齐
exceptionStyle.setAlignment(Element.ALIGN_LEFT);
exceptionStyle.setFont(contextFont);
// 离上一段落空的行数
exceptionStyle.setSpacingBefore(20);
document.add(exceptionStyle);
document.add(new Paragraph(log,
FontFactory.getFont(FontFactory.HELVETICA_BOLDOBLIQUE, 10, Font.NORMAL)));
}
}

document.close();
// 得到输入流
// wordFile = new ByteArrayInputStream(baos.toByteArray());
// baos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (BadElementException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return "";

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: