Hi,
I am trying to search text in the word document and replace the text with an image. But going through examples i did not find an easier way how to do it. This is the first time i am trying to incorporate aspose.word into my application. Please advice.
Thanks
Hi,
Thanks for the inquiry. I think you should use custom evaluator to achieve this. For example see the following code:
public void replaceWithEvaluator() throws Exception
{
String path = "D:\\";
Document doc = new Document(path + "ResumeMaxCpu.docx");
doc.getRange().replace(Pattern.compile("myString"), new MyReplaceEvaluator(), true);
doc.save(path + "Range.ReplaceWithEvaluator Out.doc");
System.out.print("DOne");
}
private class MyReplaceEvaluator implements IReplacingCallback
{
public int replacing(ReplacingArgs e) throws Exception
{
String is = e.getMatch().group();
Document doc = (Document) e.getMatchNode().getDocument();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveTo(e.getMatchNode());
builder.insertImage("D:\\Logo.jpg");
return ReplaceAction.REPLACE;
}
}
Best Regards,
Nabeel Ahmad
Hi,
Thanks for the reply. Is there a way to just replace only one occurance instead of all of the matches.
Thanks,
Rama.
Hi Rama,
Thanks for your inquiry.
You can use code like below to achieve this:
private class MyReplaceEvaluator implements IReplacingCallback
{
public int replacing(ReplacingArgs e) throws Exception
{
if (mHasMadeReplacement)
return ReplaceAction.SKIP;
String is = e.getMatch().group();
Document doc = (Document) e.getMatchNode().getDocument();
DocumentBuilder builder = new DocumentBuilder(doc);
builder.moveTo(e.getMatchNode());
builder.insertImage("D:\\Logo.jpg");
mHasMadeReplacement = true;
return ReplaceAction.REPLACE;
}
boolean mHasMadeReplacement = false;
}
Thanks,