ResourceLink viewImageLink = new ResourceLink("view", new Resource() { private static final long serialVersionUID = 1L; @Override public IResourceStream getResourceStream() { String currentDocumentPath = currentDocument.getPath(); File currentFile = new File(currentDocument.getPath()); if (!currentFile.exists()) { return new FileResourceStream(new File(bean.getErrorDocumentPath())); } else if (currentDocumentPath.substring(currentDocumentPath.lastIndexOf(".")).replaceAll("\\.", "").equalsIgnoreCase("pdf")) { return new FileResourceStream(currentFile); } else { try { bean.convertEsi(currentDocument.getId(), "ID", "pdf", bean.getExpertId()); String newPath = currentDocumentPath.substring(0, currentDocumentPath.length()-3) + "pdf"; return new FileResourceStream(new File(newPath)); } catch (Exception e) { logger.error("esi conversion failed!"); return new FileResourceStream(new File(bean.getErrorDocumentPath())); } } } }) { private static final long serialVersionUID = 1L; @Override public void onClick() { WebResponse response = (WebResponse) getResponse(); response.setHeader("content-disposition", "inline;filename=document.pdf"); } };