Hey Everyone
Please help me Image Add DataTable Question
Simple Code:
CachedRowSet crs = this.pexecuteQueryRowSet(sql.toString(), args.toArray());
while (crs.next()) {
Map record = new HashMap();
FileInputStream fis = new FileInputStream(crs.getString("filePath");
byte[] image = new byte[fis.available()];
fis.read(image);
fis.close();
DataSet ds = null;
DataTable dt = new DataTable();
dt = new DataTable(crs, "MainTable");
ds.getTables().add(dt);
}
Document doc = new Document(reportPath);
doc.getMailMerge().executeWithRegions(ds);
response.setContentType("application/msword");
doc.save(response.getOutputStream(), SaveFormat.DOC);
How can add byte[] image to CachedRowSet or DataTable ?
and suggest Other Method?
Please provide the solution earliest.
Thanks you
Hi Luke,
Thanks for your inquiry. Please try running the following simple code to be able to insert images during performing 'execute with regions' operation.
Document doc = new Document(getMyDir() + "in.docx");
doc.getMailMerge().setFieldMergingCallback(new HandleMergeFields());
doc.getMailMerge().executeWithRegions(getDataTable());
doc.save(getMyDir() + “out.docx”);
static class HandleMergeFields implements IFieldMergingCallback
{
public void fieldMerging(FieldMergingArgs args) throws Exception {
DocumentBuilder builder = new DocumentBuilder(args.getDocument());
<font color="RED"><b>if</b></font> <font color="BLUE"><b>(</b></font>args<font color="BLUE"><b>.</b></font>getFieldName<font color="BLUE"><b>(</b></font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>.</b></font>equals<font color="BLUE"><b>(</b></font><font color="PURPLE">"pic"</font><font color="BLUE"><b>)</b></font> <font color="BLUE"><font color="BLUE">&</font><font color="BLUE">&</font></font> args<font color="BLUE"><b>.</b></font>getFieldValue<font color="BLUE"><b>(</b></font><font color="BLUE"><b>)</b></font> <font color="BLUE">!</font><font color="BLUE">=</font> <font color="RED"><b>null</b></font><font color="BLUE"><b>)</b></font>
<font color="BLUE"><b>{</b></font>
builder<font color="BLUE"><b>.</b></font>moveToMergeField<font color="BLUE"><b>(</b></font>args<font color="BLUE"><b>.</b></font>getFieldName<font color="BLUE"><b>(</b></font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>;</b></font>
builder<font color="BLUE"><b>.</b></font>insertImage<font color="BLUE"><b>(</b></font>args<font color="BLUE"><b>.</b></font>getFieldValue<font color="BLUE"><b>(</b></font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>.</b></font>toString<font color="BLUE"><b>(</b></font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>;</b></font>
<font color="BLUE"><b>}</b></font>
<font color="BLUE"><b>}</b></font>
<font color="RED"><b>public</b></font> <font color="RED"><b>void</b></font> imageFieldMerging<font color="BLUE"><b>(</b></font>ImageFieldMergingArgs e<font color="BLUE"><b>)</b></font> <font color="RED"><b>throws</b></font> Exception <font color="BLUE"><b>{</b></font>
<font color="GREEN"><i>// Do nothing.
}
}
private static DataTable getDataTable()
{
DataTable dataTable = new DataTable(“Sale”);
dataTable<font color="BLUE"><b>.</b></font>getColumns<font color="BLUE"><b>(</b></font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>.</b></font>add<font color="BLUE"><b>(</b></font><font color="RED"><b>new</b></font> DataColumn<font color="BLUE"><b>(</b></font><font color="PURPLE">"pic"</font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>;</b></font>
DataRow dataRow<font color="BLUE"><b>;</b></font>
<font color="RED"><b>for</b></font> <font color="BLUE"><b>(</b></font><font color="RED"><b>int</b></font> i <font color="BLUE">=</font> <font color="BROWN">0</font><font color="BLUE"><b>;</b></font> i <font color="BLUE"><</font> <font color="BROWN">5</font><font color="BLUE"><b>;</b></font> i<font color="BLUE"><font color="BLUE">+</font><font color="BLUE">+</font></font><font color="BLUE"><b>)</b></font>
<font color="BLUE"><b>{</b></font>
dataRow <font color="BLUE">=</font> dataTable<font color="BLUE"><b>.</b></font>newRow<font color="BLUE"><b>(</b></font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>;</b></font>
dataRow<font color="BLUE"><b>.</b></font>set<font color="BLUE"><b>(</b></font><font color="PURPLE">"pic"</font><font color="BLUE"><b>,</b></font> getMyDir<font color="BLUE"><b>(</b></font><font color="BLUE"><b>)</b></font> <font color="BLUE">+</font> <font color="PURPLE">"aspose.words.jpg"</font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>;</b></font>
dataTable<font color="BLUE"><b>.</b></font>getRows<font color="BLUE"><b>(</b></font><font color="BLUE"><b>)</b></font><font color="BLUE"><b>.</b></font>add<font color="BLUE"><b>(</b></font>dataRow<font color="BLUE"><b>)</b></font><font color="BLUE"><b>;</b></font>
<font color="BLUE"><b>}</b></font>
<font color="RED"><b>return</b></font> dataTable<font color="BLUE"><b>;</b></font>
}
Hope, this helps.
Best regards,