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>
<!-- 写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 ""; } }
相关文章推荐
- Java 实现word 中写入文字图片的解决方案
- Java处理word文档 用jacob 表格图片文字替换
- 用C#操作office组件库实现word文档的创建及文字 表格 图片的插入
- Java 替换word文档文字并指定位置插入图片
- Java 实现word 中写入文字图片的解决方案
- 【Java工具类】 POI操作word文档模版可修改文字图片
- Java 使用Freemarker导出word 文档,解决当一段内容中既有文字又有图片的问题
- Java 实现word 中写入文字图片的解决方案
- java jacob 操作word 文档,进行写操作,如生成表格,添加 图片
- java 处理word文档 (含图片,表格内容)
- 使用Office自动的软件将图片中的文字信息转换成word文档
- 利用POI操作不同版本word文档中的图片以及创建word文档
- java2Word在Word文档指定位置插入图片或者文字
- java导出word、pdf之添加页眉----页眉(指定格式,包括图片和文字)
- 使用aspose.word.for.java解析word文档图片并替换
- java jacob 操作word 文档,进行写操作,如生成表格,添加 图片(这个不错,可以拿来直接用,非常好)
- Java通过OpenOffice将word、ppt、excel、图片、txt文档转换成PDF
- java在指定目录下创建文件并向其中写入文字
- 怎样将纸质文档转换成图片,然后转换成word文字
- java通过url在线预览Word、excel、ppt、pdf、txt文档中的内容【只获得其中的文字】