Do we have the option to remove pictures from .docx
file in java using xwpfdocument
? Please reply me since I'm trying to do it for past one week.
Code tried:
public static void imageProcess(XWPFDocument document) throws IOException
{
List<XWPFPictureData> pic=document.getAllPictures();
Iterator<XWPFPictureData> iterator=pic.iterator();
if (pic.size()>0)
{
for (XWPFParagraph para : document.getParagraphs())
{
List<XWPFRun> runs = para.getRuns();
for( XWPFRun run : runs ){
run.getCTR().removeDrawing(0);
}
}
}
}
Exception:
Exception in thread "main" java.lang.IndexOutOfBoundsException
at org.apache.xmlbeans.impl.store.Xobj.removeElement(Xobj.java:2200)
at org.apache.xmlbeans.impl.store.Xobj.remove_element(Xobj.java:2230)
at org.openxmlformats.schemas.wordprocessingml.x2006.main.impl.CTRImpl.removeDrawing(Unknown Source)
at com.util.DocxUtil.imageProcess(DocxUtil.java:326)
at com.util.DocxUtil.main(DocxUtil.java:60)
Try this :
If you get an
IndexOutOfBoundsException
on a call where you try to remove item #0, then your list is obviously empty. So either do an emptiness check on all the drawings in yourRun
object, or use a for loop - which won't execute if yourList<CTDrawing>
is empty.