Extract images using paragraph node in Java

Bullets.zip (1.0 MB)

Hi team,
Requiring images to be extracted as it is in source document as group images in separate document for each output.

Regards
Priya Dharshini J PProb.zip (2.1 MB)

Hi Priya,

Thanks for your inquiry. Please refer to the following article:
Extract Selected Content Between Nodes

Please use following code example to get the desired output. Hope this helps you.

Document doc = new Document(MyDir + "prob.docx");
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveToDocumentStart();
builder.startBookmark("bookmark0");
builder.endBookmark("bookmark0");

ArrayList<String> bookmarks = new ArrayList<String>();
bookmarks.add("bookmark0");
int i = 1;
NodeCollection paragraphs = doc.getChildNodes(NodeType.PARAGRAPH, true);
for (Paragraph paragraph : (Iterable<Paragraph>) paragraphs)
{
    if(paragraph.toString(SaveFormat.TEXT).trim().contains("Figure"))
    {
        builder.moveTo(paragraph.getRuns().get(0));
        builder.startBookmark("bookmark"+i);
        builder.endBookmark("bookmark"+i);
        bookmarks.add("bookmark"+i);
        i++;
    }
}

for(int b = 0; b < bookmarks.size() - 1; b++)
{
    Bookmark bookmark1 = doc.getRange().getBookmarks().get(bookmarks.get(b));
    Bookmark bookmark2 = doc.getRange().getBookmarks().get(bookmarks.get(b + 1));
    ArrayList nodes =  ExtractContents.extractContent(bookmark1.getBookmarkStart(), bookmark2.getBookmarkEnd(), true);
    Document dstDoc = ExtractContents.generateDocument(doc, nodes);

    for (Paragraph paragraph : (Iterable<Paragraph>) dstDoc.getChildNodes(NodeType.PARAGRAPH, true))
    {
        if(paragraph.getChildNodes(NodeType.SHAPE, true).getCount() == 0)
        {
            paragraph.remove();
        }
    }

    dstDoc.save(MyDir + "output "+ b + ".docx");
}

Thank You @tahir.manzoor

Regards
Priya Dharshini J P