zoukankan      html  css  js  c++  java
  • Java 实现word 中写入文字图片的解决方案

    用到的jar包: 
    iText-2.1.5.jar
    iText-rtf-2.1.4.jar
    iTextAsian.jar

     下载地址:http://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类库。"
    
           + " 
    "// 换行 + "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 "";
    
       }
  • 相关阅读:
    如何计算二进制数的取值范围
    理解网络请求中的连接超时和读取超时
    两行代码玩转Spring Data排序和分页
    面试必问Elasticsearch倒排索引原理
    你知道Java的四种引用类型吗
    抛弃配置后的Spring终极教程
    Python学习第二篇
    Python
    关于always块内for循环的执行方式
    三态门实现“一读多写”总线结构
  • 原文地址:https://www.cnblogs.com/jack1208-rose0203/p/6297462.html
Copyright © 2011-2022 走看看