Java 实现word 中写入文字图片的解决方案
用到的jar包:
iText-2.1.5.jar
iText-rtf-2.1.4.jar
iTextAsian.jar
下载地址:https://files.cnblogs.com/files/jack1208-rose0203/Java%E5%AE%9E%E7%8E%B0word%E4%B8%AD%E5%86%99%E5%85%A5%E6%96%87%E5%AD%97%E5%9B%BE%E7%89%87%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%E2%80%94%E2%80%94%E7%94%A8%E5%88%B0%E7%9A%84jar%E5%8C%85.zip
/**
* 创建word文档 步骤:
* 1,建立文档
* 2,创建一个书写器
* 3,打开文档
* 4,向文档中写入数据
* 5,关闭文档
*/
/** * * @Description: 将网页内容导出为word * @param @param file * @param @throws DocumentException * @param @throws IOException 设定文件 * @return void 返回类型 * @throws */ public static String exportDoc() throws DocumentException, IOException { // 设置纸张大小 Document document = new Document(PageSize.A4); // 建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中 // ByteArrayOutputStream baos = new ByteArrayOutputStream(); File file = new File("D://report.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); // // 正文字体风格 // Font contextFont = new Font(bfChinese, 10, Font.NORMAL); Paragraph title = new Paragraph("统计报告"); // // 设置标题格式对齐方式 title.setAlignment(Element.ALIGN_CENTER); // title.setFont(titleFont); document.add(title); String contextString = "iText是一个能够快速产生PDF文件的java类库。" + " \n"// 换行 + "iText的java类对于那些要产生包含文本," + "表格,图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。" + "使用iText与PDF能够使你正确的控制Servlet的输出。"; Paragraph context = new Paragraph(contextString); // 正文格式左对齐 context.setAlignment(Element.ALIGN_LEFT); // context.setFont(contextFont); // 离上一段落(标题)空的行数 context.setSpacingBefore(5); // 设置第一行空的列数 context.setFirstLineIndent(20); document.add(context); // // // 利用类FontFactory结合Font和Color可以设置各种各样字体样式 // // Paragraph underline = new Paragraph("下划线的实现", FontFactory.getFont( // FontFactory.HELVETICA_BOLDOBLIQUE, 18, Font.UNDERLINE, // new Color(0, 0, 255))); // // document.add(underline); // // // 添加图片 Image.getInstance即可以放路径又可以放二进制字节流 // Image img = Image.getInstance("D:\\eclipseWorkspace\\wordTest\\01055378_0.jpg"); img.setAbsolutePosition(0, 0); img.setAlignment(Image.LEFT);// 设置图片显示位置 // // img.scaleAbsolute(60, 60);// 直接设定显示尺寸 // // // img.scalePercent(50);//表示显示的大小为原尺寸的50% // // // img.scalePercent(25, 12);//图像高宽的显示比例 // // // img.setRotation(30);//图像旋转一定角度 // document.add(img); document.close(); // 得到输入流 // wordFile = new ByteArrayInputStream(baos.toByteArray()); // baos.close(); return ""; }