2013-12-18 31 views
0

我有一個生成XML數據的循環,和出口它的PDF文件與Apache FOP導出多個PDF文件 - 門戶Liferay的

@ResourceMapping("doPrint") 

public void printFunction(@ModelAttribute(FILTER_STAMPA_MODEL_ATTRIBUTE)    ListManlevaRequestDTO filter, ResourceRequest request, ResourceResponse response){  
    ByteArrayOutputStream out = new ByteArrayOutputStream(); 
    ListManlevaResponseDTO manlevaResponse=manlevaServiceFacade.listManleva(filter);   
     for(int i = 0; i<manlevaResponse.getResults().size();i++){ 
     String resultGeneration= FopManlevaUtil.createPdf(manlevaResponse.getResults().get(i), out, request); 

      // Send content to Browser 
        HttpServletResponse hsr = PortalUtil.getHttpServletResponse(response); 
        if (hsr != null) { 
         hsr.setHeader("Pragma", "public"); 
         hsr.setHeader("Expires", "0"); 
         hsr.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); 
         hsr.setHeader("Content-Disposition", String.format("attachment; filename=%s.%s", resultGeneration, "pdf")); 
        } 

        // Prepare response 
        response.setContentType("application/pdf"); 

        response.setContentLength(out.size()); 
       response.getPortletOutputStream().write(out.toByteArray()); 
        out.flush(); 
        out.close();     
        response.getPortletOutputStream().flush(); 
        response.getPortletOutputStream().close();    
      } 
} 

我的問題是,它產生了我只有1個文件,而不是多個文件。謝謝所有

回答

0

通過一個響應,你可以只返回一個文件。你可以創建一個包含許多pdf的壓縮文件並將其返回。