1.前端页面使用了pdfobject.js。
github地址:https://github.com/pipwerks/PDFObject
2.Java代码
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
@Controller
@RequestMapping("/pdf/")
public class PDFControllersss {
/**
* PDF预览页面
* @param pn PDF文件保存地址
* */
@RequestMapping("showPdf")
public ModelAndView showPdf(String pn){
ModelAndView mav = new ModelAndView();
mav.addObject("pn", pn);
mav.setViewName("pdf");
return mav;
}
/**
* 读取PDF文件数据
* @param pn PDF文件保存地址
* */
@RequestMapping("readPdf")
public void readPdf(HttpServletResponse response, String pn){
OutputStream out = null;
FileInputStream in = null;
try{
File file = new File(pn);
if (file!=null && file.exists()){
response.setContentType("application/pdf");
in = new FileInputStream(file);
out = response.getOutputStream();
byte[] b = new byte[1024];
while (in.read(b) != -1){
out.write(b);
}
}
}catch (Exception e){
e.printStackTrace();
System.out.println("读取PDF文件异常");
}finally {
try {
if (in != null) {
in.close();
}
if (out != null) {
out.flush();
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
3.访问预览页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PDF预览</title>
</head>
<body>
<#--新窗口打开预览页面-->
<a href="http://localhost:8080/pdf/showPdf?pn=README.pdf" target="_blank">PDF预览</a>
</body>
</html>
3.PDF预览页面
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>PDF预览</title>
</head>
<body>
<#--引入JS文件-->
<script type="text/javascript" src="pdfobject.min.js"></script>
<script>
var url = "http://localhost:8080/pdf/readPdf?pn="+encodeURIComponent("${pn}");
PDFObject.embed(url);
</script>
</body>
</html>