Hi team,
How to insert a empty node(most probably Paragraph) before and after a shape? Shape should include all graphical images,tables,group images inside text area.I had tried with the below code,
Document doc = new Document (“word_doc”);
for(Shape s :(Iterable)doc.getChildNodes(NodeType.SHAPE, true) ) {
s.getParentNode().insertBefore(new Paragraph(doc), s);
s.getParentNode().insertAfter(new Paragraph(doc), s);
}
doc.save(“filename”);
But, it resulted with the following error.
Error:
Invalid arguments
Cannot insert a node of this type at this location.
For time being please give a work around solution earlier as much possible.
Sample word doc: 22-LNCS11418_268.zip (930.0 KB)
Thanks in advance.
Regards,
Gomathi. N.
@Gomathi,
Please note that Shape is an inline level node. Please refer to the following article for more details:
Aspose.Words Document Object Model
The following code inserts paragraphs after and before the paragraphs the Shapes are anchored to:
for(Shape s :(Iterable<Shape>)doc.getChildNodes(NodeType.SHAPE, true) ) {
Paragraph para = (Paragraph) s.getAncestor(NodeType.PARAGRAPH);
if (para != null){
para.getParentNode().insertBefore(new Paragraph(doc), para);
para.getParentNode().insertAfter(new Paragraph(doc), para);
}
}
Hope, this helps.
Dear Awais,
I have tried the below code but partial output only I got with. Please go through the attached sample for further analysis.
Sample: ch_1_ip.zip (724.8 KB)
Thanks in advance.
Regards,
Gomathi. N.
@Gomathi,
Please check if the following code is acceptable for you?
Document doc = new Document("E:\\ch_1_ip\\ch_1_ip.docm");
for(Shape s :(Iterable<Shape>)doc.getChildNodes(NodeType.SHAPE, true) ) {
s.getParentNode().insertBefore(new Run(doc, ControlChar.LINE_BREAK), s);
s.getParentNode().insertAfter(new Run(doc, ControlChar.LINE_BREAK), s);
}
doc.save("E:\\ch_1_ip\\awjava-19.3.docm");