In this article, I will introduce how to replace an image with a new image and how to replace an image with text in a Word document programmatically in Java.
The required library:
The example Word document:
Imported namespace:
import com.spire.doc.Document;
import com.spire.doc.DocumentObject;
import com.spire.doc.FileFormat;
import com.spire.doc.Section;
import com.spire.doc.documents.Paragraph;
import com.spire.doc.fields.DocPicture;
import com.spire.doc.fields.TextRange;
Replace image with new image
//load Word document
Document doc = new Document();
doc.loadFromFile("Images.docx");
doc.loadFromFile("Images.docx");
//get the first section
Section section = doc.getSections().get(0);
//loop through the paragraphs in the section
for (int i=0;i< section.getParagraphs().getCount();i++)
{
Paragraph para=section.getParagraphs().get(i);
//loop through the child objects in the paragraph
for (int j=0;j<para.getChildObjects().getCount();j++)
{
DocumentObject obj =para.getChildObjects().get(j);
//find the image
if(obj instanceof DocPicture){
//replace the image with a new image
DocPicture pic = (DocPicture)obj;
pic.loadImage("Hydrangeas.jpg");
}
}
}
//save the resultant document
doc.saveToFile("ReplaceWithImage.docx", FileFormat.Docx_2013);
Replace image with text
//load Word document
Document doc = new Document();
doc.loadFromFile("Images.docx");
//get the first section
Section section = doc.getSections().get(0);
//loop through the paragraphs in the section
for (int i=0;i< section.getParagraphs().getCount();i++)
{
Paragraph para=section.getParagraphs().get(i);
//loop through the child objects in the paragraph
for (int j=0;j<para.getChildObjects().getCount();j++)
{
DocumentObject obj =para.getChildObjects().get(j);
//find the image
if(obj instanceof DocPicture){
//replace the image with text
DocPicture pic = (DocPicture)obj;
TextRange text = new TextRange(doc);
text.setText("Text");
int index = para.getIndex(pic);
para.getChildObjects().insert(index, text);
para.getChildObjects().remove(pic);
}
}
}
//save the resultant document
doc.saveToFile("ReplaceWithText.docx", FileFormat.Docx_2013);
Comments
Post a Comment