1. 程式人生 > >java+js將資料列印預覽PDF

java+js將資料列印預覽PDF

1、pdfjs包的位置

2.後臺java

@RequestMapping(params = "goViewPDF")
	public ModelAndView goViewPDF(HttpServletRequest request,HttpServletResponse response){
		
		String filePath = request.getParameter("filePath");//檔案的路徑
		request.setAttribute("filePath",filePath);
		ModelAndView view =new ModelAndView("com/aisino/grain/platform/turnbusinessapply/viewerPDF");
		return view ;
	}
	
	@RequestMapping("viewPDF")
	public void filePath(HttpServletRequest request, HttpServletResponse response) {
		
		String queryString = request.getQueryString().substring(2);
		String realPath = request.getSession().getServletContext().getRealPath("").replace("\\", "/");
		String contextPath=request.getContextPath();
		realPath=realPath.substring(0, realPath.indexOf(contextPath));
		String filePath = realPath+queryString;
	        File file = new File(filePath);
	        byte[] data = null;
	        try {
	            FileInputStream input = new FileInputStream(file);
	            data = new byte[input.available()];
	            input.read(data);
	            response.getOutputStream().write(data);
	            input.close();
	        } catch (Exception e) {
	            logger.error("pdf檔案處理異常:" + e.getMessage());
	        }
	}

3、jsp的viewerPDF的頁面

<%@ page language="java" import="java.util.*" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/context/mytags.jsp"%>
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <meta name="google" content="notranslate">
    <title>預覽</title>
    <script type="text/javascript">
    </script>
  </head>
  <body tabindex="1" class="loadingInProgress">
    <div id="printContainer">
     <iframe  src='<c:url value="plug-in/pdfjs/generic/web/viewer.html" />?file=<c:url value="/tdTurnbusinessapplyController/viewPDF.do?${filePath }"/>' width="100%" height="470"></iframe>
    </div>
  </body>
</html>
 

4.效果

5.pdfjs下載