Hi All,
In Process, there is a document data slot which hold a pdf file , now i need to display this pdf file on activity of Bizlogic/Bizsolo process .
Please suggest me the way i can give view of pdf file in form itself using Ifram or any other way.
I do not need to show as a attachment.
Thanks and Regards
Hiren
Hello Hiren,
You can have an implementation where a servlet will bring a file for you reading bytes of the file. And add below code to your activity jsp as below:
" id="docIFrame" type="application/pdf"/>
Thanks
--Vikas
Hi,
Thank you for your email. I'm currently out of the office. I will return on October 3. During my absence I will have no/limited access access to email. For urgent matters, call me on my mobile and leave a message, call our office, or contact Gary Calcott (gcalcott@progress.com).
Best regards,
Wouter
--
Wouter Dupré
Senior Solutions Consultant
Progress Software NV
A. Stocletlaan 202 B | B-2570 Duffel | Belgium
Office +32 (0) 15 30 77 00 | Mobile +32 (0) 478 50 00 49
Hi Hiren,
find code to FileServlet
/**
*
*/
package com.progress.exl.util;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
//import com.bob.savvion.service.BOBBLAPIImpl;
import com.progress.exl.common.util.CommonLogger;
import com.savvion.sbm.bizlogic.server.svo.DocumentDS;
import com.savvion.sbm.bizlogic.util.Session;
import com.savvion.sbm.bizmanage.api.BizManageBean;
import com.savvion.sbm.bpmportal.bizsite.api.BizSiteBean;
import com.savvion.sbm.bpmportal.bizsite.doclets.DocReceiver;
import com.savvion.sbm.bpmportal.service.PortalDocumentService;
import com.savvion.sbm.bpmportal.util.PortalConstants;
import com.savvion.util.MimeType;
import com.savvion.sbm.dms.DSContext;
import com.savvion.sbm.dms.svo.Document;
public class FileDisplayServlet extends HttpServlet{
private static CommonLogger logger = CommonLogger.getLogger();
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
long timestamp = System.currentTimeMillis();
String docname = request.getParameter( "docname" );
String mimeType = "application/pdf";
response.setContentType(mimeType);
String ptid = request.getParameter( "ptid" );
String pid = request.getParameter( "pid" );
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Cache-Control", "no-store");
HttpSession session = request.getSession(false);
BizManageBean bizManage = (BizManageBean)session.getAttribute( "bizManage" );
HashMap hmap = bizManage.getDocumentDSValues(ptid,pid);
BizSiteBean bizSite = (BizSiteBean) session.getAttribute("bizSite");
DSContext context = null;
context = PortalDocumentService.getDSContext(bizSite.getBizlogicSession());
Session blSession = bizManage.getBizLogicSession();
String sessionId = null;
sessionId = session.getId();
DocumentDS docDS = null;
Document doc = null;
for (Iterator iterator = hmap.keySet().iterator(); iterator.hasNext();) {
String key = (String) iterator.next();
DocumentDS ds = hmap.get(key);
List dslist = ds.getDocumentNames();
List doclist = ds.getDocuments();
logger.logDebug(FileDisplayServlet.class, "doPost()", "List size : " + dslist.size() );
if(key.equalsIgnoreCase(ServletConstants.SCANNEDIMAGE))
{
if( dslist.size() > 0 ) {
String dsName = dslist.get(0);
docDS = DocReceiver.getDocumentValue(sessionId, dsName);
logger.logDebug(FileDisplayServlet.class, "doPost()", "ContentDispostion set");
response.setHeader("Content-Dispostion", "inline; filename=\"" + dsName + "\";");
response.setCharacterEncoding(PortalConstants.UTF8);
response.setHeader("IS_THERE_FILE_NAME", "TRUE");
for(Document docl : doclist){
logger.logDebug(FileDisplayServlet.class, "doPost()","docName " + docl.getName());
logger.logDebug(FileDisplayServlet.class, "doPost()","Id "+ docl.getId());
doc = docl;
}
OutputStream out = response.getOutputStream();
ByteArrayInputStream is = doc.getContent(context);
BufferedInputStream bis = null;
try {
int IO_BUFFER_SIZE = 1 * 1024 ;
int bufSize = IO_BUFFER_SIZE;
bis = new BufferedInputStream(is, bufSize);
byte[] buf = new byte[IO_BUFFER_SIZE];
int bytesRead = 0;
long tempsize=0;
int length= (int)doc.getSize();
response.setContentLength(length);
response.setHeader("Content-disposition", "filename=" + doc.getName() );
response.setBufferSize(20480);
byte[] buffer = new byte[19456];
int len;
int tempLen=0;
while (bis.available() != 0) {
len = bis.read(buffer);
tempLen += len;
logger.logDebug(FileDisplayServlet.class, "doPost()", "Total length " + length +
" buffer read "+len + " total length readbis" + tempLen );
out.write(buffer, 0, len);
out.flush();
response.flushBuffer();
};
}catch(IOException io){
logger.logDebug(FileDisplayServlet.class, "doPost()","FileDisplayServlet.doPost().IOException");
io.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
/* if(output != null){
output.close();
}
*/
if(out != null){
out.close();
}
if (bis != null) {
try {
bis.close();
} catch (Exception ce) {
// nothing
}
}
}
} else {
response.setContentType( "text/html");
PrintWriter writer = response.getWriter();
writer.print(" There is a problem in rendering the image. Please contact Adminstrator. ");
writer.flush();
writer.close();
}
}
}
}
}
Hope this will help you