随笔 - 571  文章 - 4  评论 - 253  阅读 - 72万

OAF_文件系列12_实现OAF导出PDF方式TemplateHelper

 

ap.paymentrequest.webui

PaymentRequestSignCO

 

http://wenku.baidu.com/link?url=ujbT5CHkeC1bAtUn9Nsm_FgVB4k4nAWwwlphukyPGKNoPv5cDjRONWAZmf6RejggMg9onxIg_Rqi_gKKV665EVffofZ3Ds_IdKh9Y3tsKZq

 

 

 

 

    public void PrintPDF(OAPageContext pageContext, OAWebBean webBean,
                         CLOB xmlClob, String printType,
                         String paymentRequestId) {
        HttpServletResponse response =
            (HttpServletResponse)pageContext.getRenderingContext().getServletResponse();
        // Set the Output Report File Name and Content Type
        String contentDisposition;
        String fileName;
        try {
            if ("INVOICE".equals(printType)) {
                fileName = "后补发票";
            } else {
                fileName = "付款申请";
            }
            contentDisposition =
                    "attachment;filename=" + java.net.URLEncoder.encode(fileName,
                                                                        "UTF-8") +
                    paymentRequestId + ".pdf";

            response.setHeader("Content-Disposition", contentDisposition);
            response.setContentType("application/pdf");
            Reader inputReader = xmlClob.getCharacterStream();
            OADBTransactionImpl oaTrans =
                (OADBTransactionImpl)pageContext.getApplicationModule(webBean).getOADBTransaction();
            String templateName = "";
            if ("CON".equals(printType)) {
                templateName = "XVK_NO_CNT_PAYMENT_REQUEST";
            } else if ("INVOICE".equals(printType)) {
                templateName = "XVK_ADD_INV_PAYMENT_REQUEST";
            } else {
                templateName = "XVK_CONTRACT_PAYMENT_REQUEST";
            }
            TemplateHelper.processTemplate(oaTrans.getAppsContext(), "XVK",
                                           templateName, "zh", "CN",
                                           inputReader,
                                           TemplateHelper.OUTPUT_TYPE_PDF,
                                           null, response.getOutputStream());

            response.getOutputStream().flush();
            response.getOutputStream().close();
        } catch (Exception e) {
            response.setContentType("text/html");
            throw new OAException(e.getMessage(), OAException.ERROR);
        }

        pageContext.setDocumentRendered(false);
    }

posted on   东方瀚海  阅读(788)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?

点击右上角即可分享
微信分享提示