美文网首页
java端将jasper文件生成pdf

java端将jasper文件生成pdf

作者: forever_smile | 来源:发表于2018-06-29 11:10 被阅读0次

流程:http请求获取传入的josn串,解析后放入jasper文件的变量里,生成pdf后返回成功。

service端根据解析的交易号分发请求:

import java.io.BufferedReader;

import java.io.IOException;

import java.io.OutputStream;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.log4j.Logger;

import net.sf.json.JSONObject;

import com.epsoft.zsb.common.CreatePdf;

/**

* http请求总入口,根据jyh分发业务处理

*/

public class DoTradeService extends HttpServlet{

CreatePdf pdf = new CreatePdf();

private static final long serialVersionUID = 1L;

static Logger logger = Logger.getLogger(DoTradeService.class); //First step

public DoTradeService() {

        super();

    }

    public void destroy() {

        super.destroy();

    }

    public void init() throws ServletException {

    }

   public void doPost(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

    request.setCharacterEncoding("UTF-8");

        response.setContentType("text/javascript");

    BufferedReader reader = request.getReader(); 

        char[] buf = new char[512]; 

        int len = 0; 

        StringBuffer contentBuffer = new StringBuffer(); 

        while ((len = reader.read(buf)) != -1) { 

            contentBuffer.append(buf, 0, len); 

        } 

        String varin = contentBuffer.toString();

        logger.info("原始传入"+varin);

        JSONObject jobj = JSONObject.fromObject(varin);

        logger.info("json转换后:返回:"+jobj);

    String jyh = null;   

    jyh = jobj.getString("JYH");

    System.out.println("交易号:"+jyh);

    if(jyh!=null||"".equals(jyh)){

    if(jyh.equals("Si00101")){

    String content = pdf.Si00101(jobj);

    logger.info("Si00101:返回:"+content);

    OutputStream out = response.getOutputStream();

            byte[] b = content.getBytes("UTF-8");

            out.write(b);

            out.flush();

            out.close();

    }

    }

    }

    public void doGet(HttpServletRequest request, HttpServletResponse response)

            throws ServletException, IOException {

doPost(request,response);

    }

}

业务处理:

public class CreatePdf {

  public String Si00101(JSONObject jojb){

         JSONObject result = new JSONObject();

         HashMap<String,Object> parameters = new HashMap<String,Object>();

         parameters.put("bm", jojb.getString("bm"));

         List<Object>   prtList =  new ArrayList();

         JSONArray ListInfo = JSONArray.fromObject(jojb.getString("ListInfo"));

        for(int i=0;i< ListInfo.size();i++){

             JSONObject job = ListInfo.getJSONObject(i);

            String[] tt = new String[17];

            tt[0] = job.getString("xm");

            prtList.add(tt);

           }

String[] prtNames = new String[] {"xm"};

String[] xm = (String[]) prtList.get(0);

parameters.put("xm0000", xm[5]);

JRDataSource s1 = new ResultDataSource(prtList,prtNames);

File reportFile = new File("D:/zsb\\shbxzgzj.jasper");

JasperReport jasperReport = null;

try {

   jasperReport = (JasperReport) JRLoader.loadObject(reportFile);

  // JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters, new    JREmptyDataSource());

 JasperPrint print = JasperFillManager.fillReport(jasperReport, parameters,s1);

  JasperExportManager.exportReportToPdfFile(print, "D:/zsb\\shbxzgzj.pdf");

  result.put("JYH", "Si00101");

  result.put("RETMSG", 0);

  result.put("ERRMSG", "");

  }catch (Exception e){

  // e.printStackTrace();

  result.put("JYH", "Si00101");

  result.put("RETMSG", -5);

  result.put("ERRMSG",e.getMessage());

  return result.toString();

    }

  return result.toString();

  }

}

使用postma测试,测试json串为:

{  

"bm":"研发部",

"ListInfo": [

      {"xm":"张三"},

      {"xm":"李四"},

      {"xm":"王五"}

]

}

相关文章

  • java端将jasper文件生成pdf

    流程:http请求获取传入的josn串,解析后放入jasper文件的变量里,生成pdf后返回成功。 service...

  • Java 生成 PDF 文档

    开源框架支持iText,生成PDF文档,还支持将XML、Html文件转化为PDF文件;Apache PDFBox,...

  • Android打包流程

    1、使用aapt工具将res资源文件生成R.java文件2、使用aidl工具将aidl文件生成对应java文件3、...

  • Java生成PDF文件

    最近在学C# xaml,好久没更新了,今天就水一篇吧 提供自己的一些工具类 生成PDF文件所需的jar包 1、创建...

  • 后台返回文件流,前端实现预览pdf

    PDFJS:https://mozilla.github.io/pdf.js/ 支持获取文件流到客户端,生成blo...

  • Java后台生成pdf文件

    前段时间因为相关业务需求需要后台生成pdf文件,对于一直crud的程序员来说,这无疑是需要一定时间来做技术预研的。...

  • 手动构建apk

    aapt 编译R文件 javac 将java文件生成.class文件 dex 编译资源,将 res下面的资源打...

  • vue 日常使用

    一. vue 使用 pdf 插件 使用Vue Cli生成项目 下载pdf.js 解压下载后的文件,将文件夹里面的b...

  • windows+PHP+shell_exec()无法执行的原因

    今天使用shell_exec()命令执行wkhtmltopdf.exe 生成pdf文件时,总是无法生成PDF文件,...

  • Java PDf生成 html模板 ->pdf文件

    html模板 首先,根据pdf模板文件建立html网页。如果有word的文档,可以在线转换成html页面,之后自己...

网友评论

      本文标题:java端将jasper文件生成pdf

      本文链接:https://www.haomeiwen.com/subject/adnoyftx.html