百度了一下,PDF转图片,方案有多种,最后之所以采取这种方案是因为此系统比较老,并且jdk是1.6_45.而且jdk不可以进行升级
先使用PDF转图片的jar(这个jar找了好久,最后好像是跟一个朋友要的,不太记得了)
链接:https://pan.baidu.com/s/17lIpaeM7QD18GFj4BWqf8Q
提取码:7xb5
这里是多张PDF转多张图片(因为PDF的张数比较多,所以采取了转多张图片的这种方案)
public static void pdfPathToImagePaths(String pdfPath) throws IOException {
File pdfFile = new File(pdfPath);
PDDocument pdDocument = PDDocument.load(pdfFile);
int pageCount = pdDocument.getNumberOfPages();
PDFRenderer pdfRenderer = new PDFRenderer(pdDocument);
for (int pageIndex=0; pageIndex<pageCount; pageIndex++) {
BufferedImage image = pdfRenderer.renderImageWithDPI(pageIndex, 105, ImageType.RGB);
ImageIO.write(image, "png", new File("C:/Users/"+pageIndex+".png"));
//将文件保存表里
System.out.println("第{}张生成的图片路径为:{}" + pageIndex);
}
pdDocument.close();
}
public static void main(String[] args) throws IOException {
String pdfPath = "C:/Users/20210531.pdf";
System.out.println("pdf文件所在位置:" + pdfPath);
//记录转图片的开始时间
long start = System.currentTimeMillis();
//开始进行转图片
pdfPathToImagePaths(pdfPath);
//记录转图片的结束时间
long end = System.currentTimeMillis();
System.out.println("总共耗时:" + (end - start));
}
这样就可以实现PDF转图片了
自己写一个demo可能比较简单,但是应用到系统中要多考虑一下
这里使用的是.vm模板 主要是想看一下前台怎么接收的图片
#set($list=$result)
<html>
<head>
<title>图片</title>
</head>
<body>
</body>
<script language="javascript">
function a(){
#if("$!list.get(0).chkEng" == "png")
#foreach ($document in $list)
var x = document.createElement("img");
x.setAttribute("src", "$!document.title");
x.setAttribute("height", "1000px");
x.setAttribute("width", "800px");
document.body.appendChild(x);
#end
#elseif("$!list.get(0).chkEng" == "pdf")
#foreach ($document in $list)
var x = document.createElement("EMBED");
x.setAttribute("src", "$!document.title");
x.setAttribute("height", "1000px");
x.setAttribute("width", "800px");
document.body.appendChild(x);
#end
#elseif("$!list.get(0).chkEng" == "规格")
var x = document.createElement("input");
x.setAttribute("value", "$!list.get(0).title");
x.setAttribute("disabled", "true");
document.body.appendChild(x);
#end
}
a();
</script>
</html>