当前位置: 代码迷 >> Java相关 >> POI 创建07word 后插入图片 遇到的有关问题?
  详细解决方案

POI 创建07word 后插入图片 遇到的有关问题?

热度:1085   发布时间:2013-02-25 21:43:20.0
POI 创建07word 后插入图片 遇到的问题??
本帖最后由 long1867 于 2010-01-11 20:14:03 编辑 项目需要生成一个Word格式的统计报表
[实现思路]
1.依据POI.XWPF提供的例子,创建好了生成07Word的Java程序
2.接着用JFreeChart生成报表中的用到的图表(保存为图片)
3.最后再把图表插入到Word中
[问题描述] 
1和2都实现了,今天实现最后一步的时候才发现,POI没有相关的方法来实现插入图片。。。一下子被打回原型。。傻了!
[寻求帮助]
大伙们有遇到过类似问题么?是如果实现的。。。请分享一下你们的经验和想法!万分感谢啊!!!

下面贴上POI自带的一个生成07Word的例子:[/color]
-------------------------------------------
import java.io.FileOutputStream; 

import org.apache.poi.xwpf.usermodel.*; 

/** 
* A simple WOrdprocessingML document created by POI XWPF API 

* @author Yegor Kozlov 
*/ 
public class SimpleDocument { 

    public static void main(String[] args) throws Exception { 
        XWPFDocument doc = new XWPFDocument(); 
        
        XWPFParagraph p1 = doc.createParagraph(); 
        p1.setAlignment(ParagraphAlignment.CENTER); 
        p1.setBorderBottom(Borders.DOUBLE); 
        p1.setBorderTop(Borders.DOUBLE); 

        p1.setBorderRight(Borders.DOUBLE); 
        p1.setBorderLeft(Borders.DOUBLE); 
        p1.setBorderBetween(Borders.SINGLE); 

        p1.setVerticalAlignment(TextAlignment.TOP); 

        XWPFRun r1 = p1.createRun(); 
        r1.setBold(true); 
        r1.setText("The quick brown fox"); 
        r1.setBold(true); 
        r1.setFontFamily("Courier"); 
        r1.setUnderline(UnderlinePatterns.DOT_DOT_DASH); 
        r1.setTextPosition(100); 

        XWPFParagraph p2 = doc.createParagraph(); 
        p2.setAlignment(ParagraphAlignment.RIGHT); 

        //BORDERS 
        p2.setBorderBottom(Borders.DOUBLE); 
        p2.setBorderTop(Borders.DOUBLE); 
        p2.setBorderRight(Borders.DOUBLE); 
        p2.setBorderLeft(Borders.DOUBLE); 
        p2.setBorderBetween(Borders.SINGLE); 

        XWPFRun r2 = p2.createRun(); 
        r2.setText("jumped over the lazy dog"); 
        r2.setStrike(true); 
        r2.setFontSize(20); 

        XWPFRun r3 = p2.createRun(); 
        r3.setText("and went away"); 
        r3.setStrike(true);