How can Image Add CachedRowSet or DataTable?

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,