posted 15 years ago
Hi All,
I have to two byte Array. I want to write them to one pdf file.
But the pdf displays only the second byte array content , i know its writing both because i concatenated the byte Arrays and written it as one byte array to the OutputStream.
my code is as follows
<code>
serverData = remoteServiceObject.doRemoteRequestProcess(clientRequest);
System.out.println("server data in tbq reports is" + serverData);
byte[] pdfReportByteArr = (byte[]) (serverData.get(0));
byte[] pdfReportByteArrDetailed = (byte[]) (serverData.get(1));
byte[] completeReport = concatenate(pdfReportByteArr,pdfReportByteArrDetailed);
System.err.println(pdfReportByteArr.length);
System.err.println(pdfReportByteArrDetailed.length);
System.err.println(completeReport.length);
response.setContentLength(completeReport.length);
response.setContentType("application/pdf");
response.setHeader("Expires", "0");
response.setHeader("Cache-Control",
"must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma", "public");
ServletOutputStream out = response.getOutputStream();
try {
out.write(completeReport);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (Exception e) {
}
}
}
protected byte[] concatenate(byte[] a, byte[] b) {
byte[] complete = new byte[a.length + b.length];
System.arraycopy(a, 0, complete , 0, a.length);
System.arraycopy(b, 0, complete , a.length, b.length);
return complete ;
}
</code>
Any help appreciated.
Thanks,
Regards,
S.R.K.Vivek Raju.