2014-11-05 1 views
4

이 코드가 있습니다Apache POI를 사용하여 워드 문서에 이미지를 삽입하는 방법은 무엇입니까?

public class ImageAttachmentInDocument { 
    /** 
    * @param args 
    * @throws IOException 
    * @throws InvalidFormatException 
    */ 
    public static void main(String[] args) throws IOException, InvalidFormatException { 

     XWPFDocument doc = new XWPFDocument(); 
     FileInputStream is = new FileInputStream("encabezado.jpg"); 
     doc.addPictureData(IOUtils.toByteArray(is), doc.PICTURE_TYPE_JPEG); 


     XWPFParagraph title = doc.createParagraph();  
     XWPFRun run = title.createRun(); 
     run.setText("Fig.1 A Natural Scene"); 
     run.setBold(true); 
     title.setAlignment(ParagraphAlignment.CENTER); 

     FileOutputStream fos = new FileOutputStream("test4.docx"); 
     doc.write(fos); 
     fos.flush(); 
     fos.close();   
    } 
} 

나는 문서를 생성 할 때, 이미지가 표시되지 않습니다

(I 아파치 POI 3.11 및 이클립스 IDE에서 XML 빈스-2.3.0을 사용하고 있습니다)을

내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

5

표시하려는 텍스트에 이미지를 첨부하지 않는 것 같습니다!

XWPF Simple Images Example에서 영감을 촬영, 당신이 당신의 코드가 될 싶어 어떻게 생각 것은 :

XWPFDocument doc = new XWPFDocument(); 

    XWPFParagraph title = doc.createParagraph();  
    XWPFRun run = title.createRun(); 
    run.setText("Fig.1 A Natural Scene"); 
    run.setBold(true); 
    title.setAlignment(ParagraphAlignment.CENTER); 

    String imgFile = "encabezado.jpg" 
    FileInputStream is = new FileInputStream(imgFile); 
    run.addBreak(); 
    run.addPicture(is, XWPFDocument.PICTURE_TYPE_JPEG, imgFile, Units.toEMU(200), Units.toEMU(200)); // 200x200 pixels 
    is.close(); 

    FileOutputStream fos = new FileOutputStream("test4.docx"); 
    doc.write(fos); 
    fos.close();   

이 오히려 명시 적으로 문서에 이미지를 첨부하는 대신, 대신에 추가가 차이 실행. 실행 추가는 문서에 추가하지만 중요한 것은 실행하고자하는 실행에서 그림을 참조하도록 설정합니다.

관련 문제