/**
*自由确定起始页和终止页
* @param fileAddress 文件地址
* @param filename pdf文件名
* @param indexOfStart 开始页 开始转换的页码,从0开始
* @param indexOfEnd 结束页 停止转换的页码,-1为全部
* @param type 图片类型
*/
@GetMapping("/pdf2png")
public static void pdf2png(String fileAddress,String filename,int indexOfStart,int indexOfEnd,String type,HttpServletResponse resp) {
// 将pdf装图片 并且自定义图片得格式大小
File file = new File(fileAddress);
try {
PDDocument doc = PDDocument.load(file);
PDFRenderer renderer = new PDFRenderer(doc);
int pageCount = doc.getNumberOfPages();
for (int i = indexOfStart; i < indexOfEnd; i++) {
BufferedImage image = renderer.renderImageWithDPI(i, 144); // Windows native DPI
// BufferedImage srcImage = resize(image, 240, 240);//产生缩略图
String pdth="D:\\woke\\_"+(i+1)+"."+type;
ImageIO.write(image, type, new File(pdth));
File filept = new File(pdth);
String codedFileName = new String(filept.getName().getBytes("UTF-8"), "iso-8859-1");
resp.setHeader("Content-Disposition", "inline;filename=" +codedFileName);
// 响应类型,编码
resp.setContentType("image/jpg");
// 设置响应内容的长度
resp.setContentLength((int) filept.length());
// 输出
IOUtils.copy(new FileInputStream(filept), resp.getOutputStream());
java.io.File files = new java.io.File(pdth);
files.delete();
}
} catch (IOException e) {
e.printStackTrace();
}
}
pdf转图片并且按照页数输出对应页数图片
最新推荐文章于 2024-04-29 08:30:00 发布