OAF 中下载使用XML Publisher下载PDF附件

OAF doesn‘t readily expose the Controller Servlet‘s HttpRequest and HttpResponse objects so you need to extract it from the OAPageContext object via:

HttpServletResponse response = (HttpServletResponse) pageContext.getRenderingContext().getServletResponse();

Once you get the response object you could already manipulate its OutputStream.

public void downloadFile(OAPageContext pageContext) {

         HttpServletResponse response = (HttpServletResponse) pageContext.getRenderingContext().getServletResponse();

         File fileToDownload = this.createFile();

         String fileType = getMimeType("txt");
         response.setContentType(fileType);
         response.setContentLength((int) fileToDownload.length());
         response.setHeader("Content-Disposition", "attachment; filename=\"" + fileToDownload.getName() + "\"");

         InputStream in = null;
         ServletOutputStream outs = null;

         try {

             outs = response.getOutputStream();
             in = new BufferedInputStream(new FileInputStream(fileToDownload));
             int ch;

             while ((ch = in.read()) != -1) {
                 outs.write(ch);
             }

         } catch (IOException e) {

             // TODO
             e.printStackTrace();

         } finally {

             try {

                 outs.flush();
                 outs.close();

                 if (in != null) {
                     in.close();
                 }

             } catch (Exception e) {

                 e.printStackTrace();

             }

         }

     }

参考资料:

Integrate XML Publisher and OA Framework

Downloading Files in OAF (需FQ)

XMLIntegrationCO

时间: 2024-11-12 11:59:38

OAF 中下载使用XML Publisher下载PDF附件的相关文章

在页面和请求中分别使用XML Publisher生成PDF报表且自动上传至附件服务器

两个技术要点: 1.使用TemplateHelper.processTemplate方法生成目标PDF的InputStream流,再使用ftp中上传流的方法将其上传至附件服务器. 2.在请求中调用AM. 其中最重要的方法便是在请求中调用AM. SourcingPrintingAMImpl am = (SourcingPrintingAMImpl)getSourcingAppModule(cpContext); OADBTransaction trans = am.getOADBTransacti

使用XML Publisher导出PDF报表

生成XML数据源有两种方式. 一种是使用存储过程,返回一个clob作为xml数据源. 另一种是直接使用VO中的数据生成xml数据源. 方法一参考: Oracle XML Publisher技巧集锦 OAF与XML Pulisher集成 方式二: CO if ( "PrintDis".equals(l_enent)) { String DistributionId = pageContext.getParameter("DistributionId"); parame

Twixl Publisher下载 移动应用开发工具【MacOS】

Twixl Publisher Mac版是一款移动应用开发工具,Twixl Publisher Mac版可以让你轻松地创建iPad和iPhone/或Android应用程序,基于Adobe公司的InDesign内容. Twixl Publisher下载:https://www.macdown.com/mac/4819.html twixl publisher for mac功能介绍 1.创建>演示>构建>分发 对于内容创建,Twixl Publisher提供两种方法; 使用InDesign

OAF与XML Publisher集成(转)

原文地址:OAF与XML Publisher集成 有两种方式,一种是用VO与XML Publisher集成,另一种是用PL/SQL与XML Publisher集成 用VO与XML Publisher集成 用VO生成数据.AM里调用 在application module新增方法: import oracle.jbo.XMLInterface; import oracle.xml.parser.v2.XMLNode; public XMLNode getReportXMLNode(String k

通过XML转换下载.xlsx格式的excel文件

在SAP系统中,通过SE11显示一个table的内容,可以发现ALV grid的显示界面上有个spread sheet的标准按钮,点击这个按钮可以将显示的内容下载成excel文件,其中也包括扩展名.xlsx的文件. <img class="alignnone size-full wp-image-2802" src="http://www.baidusap.com/wp-content/uploads/2017-02-04_15-28-29.png"

◆◆0通过XML转换下载.xlsx格式的excel文件

在SAP系统中,通过SE11显示一个table的内容,可以发现ALV grid的显示界面上有个spread sheet的标准按钮,点击这个按钮可以将显示的内容下载成excel文件,其中也包括扩展名.xlsx的文件. 这个功能很方便,因为下载的结果和ALV中看到的是一样的. debug研究了一下标准代码,发现是将需要下载的内表先转换成XML stream,然后再通过gui_download的BIN模式将xml stream下载成.xlsx文件. 写了一个简单的程序供大家参考 1 2 3 4 5 6

OAF中输出PDF报表文件超链接

OAF中输出PDF报表文件超链接解决方案 解决思路 获取PDF文件的输出流 获取输出流之后将其转换为BLOB 将转化后的BLOB存储在附件表fnd_blobs中 构造该BLOB文件的URL 将URL存储在客户化表里形成一条唯一的记录,返回唯一ID FORM通过返回得唯一ID找到URL,调用方法,在浏览器打开URL 技术要点 使用TemplateHelper.processTemplate方法生成目标PDF的InputStream流 调用程序包将InputStream传入数据库中的BLOB字段中,

跟我学SpringMVC目录汇总贴、PDF下载、源码下载

跟我学SpringMVC目录汇总贴.PDF下载.源码下载 http://jinnianshilongnian.iteye.com/blog/1752171 跟开涛学SpringMVC 在线版目录 第一章 Web MVC简介 第二章 Spring MVC入门 第三章 DispatcherServlet详解 第四章 Controller接口控制器详解(1) 第四章 Controller接口控制器详解(2) 第四章 Controller接口控制器详解(3) 第四章 Controller接口控制器详解(

Linux中从oracle官网下载jdk文件不是标准的gzip格式文件问题

首先你要知道,在linux系统中,文件类型跟后缀名无关,后缀名只是为了方便识别,所以你下载的压缩包可能是tar.gz格式的,也有可能是tar.bz2或tar.xz格式,因为可能别人压缩之后不小心改错了名,这也是避免不了的. http://download.oracle.com/otn-pub/java/jdk/8u131-b11/d54c1d3a095b4ff2b6607d096fa80163/jdk-8u131-linux-x64.tar.gz指向的是一个页面,具体的下载的包包含在这个页面的一