@Pradeep Your code
public static void main(String[] args) throws Exception {
WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.createPackage();
//wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Title", "Hello World");
//wordMLPackage.getMainDocumentPart().addParagraphOfText("Text");
java.io.InputStream is = new java.io.FileInputStream("path\\to\\images.jpg");
// commons-io.jar
byte[] bytes = IOUtils.toByteArray(is);
String filenameHint = null;
String altText = null;
int id1 = 0;
int id2 = 1;
org.docx4j.wml.P p = newImage(wordMLPackage, bytes,filenameHint, altText,id1, id2,6000 );
// Now add our p to the document
wordMLPackage.getMainDocumentPart().addObject(p);
wordMLPackage.save(new java.io.File("helloworld.docx"));
is.close();
}
public static org.docx4j.wml.P newImage(WordprocessingMLPackage wordMLPackage,
byte[] bytes,
String filenameHint, String altText,
int id1, int id2, long cx) throws Exception {
BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wordMLPackage, bytes);
Inline inline = imagePart.createImageInline(filenameHint, altText,id1, id2, cx,false);
// Now add the inline in w:p/w:r/w:drawing
org.docx4j.wml.ObjectFactory factory = new org.docx4j.wml.ObjectFactory();
org.docx4j.wml.P p = factory.createP();
org.docx4j.wml.R run = factory.createR();
p.getContent().add(run);
org.docx4j.wml.Drawing drawing = factory.createDrawing();
run.getContent().add(drawing);
drawing.getAnchorOrInline().add(inline);
return p;
works , but all the above codes does not work, i tried it personally
thanks, a lot.
您是否尝试过与POI 3.8 beta 4版本?一些图片错误已经从3.7最终解决,因此值得看看升级是否解决了您的问题 – Gagravarr
是的,唯一的区别是在POI 3.8 beta 4中,方法名称XWPFDocument.addPicture(byte [] arg0,int arg1)被更改到XWPFDocument.addPictureData(byte [] arg0,int arg1) - 也许概要说明这种方法只是将图片数据添加到文档中,但不会将图片添加到要显示在单词中的段落等。这是否仍然没有答案。我认为一个CTPicture对象(org.openxmlformats.schemas.drawingml.x2006.picture.CTPicture)必须创建并添加到一个段落 - 但是,我还没有发现如何做到这一点。 –
您是否尝试调用[addPicture](http://poi.apache.org/apidocs/org/apache/poi/xwpf/usermodel/XWPFRun.html#addPicture%28java.io.InputStream,%20int,%20java.lang .String,%20int,%20int%29)在您希望图片显示的文本上运行? – Gagravarr