spring boot 实现 PDF转换图片
引入依赖
org.springframework.boot spring-boot-starter-parent 2.0.4.RELEASE org.springframework.boot spring-boot-starter-web org.icepdf.os icepdf-core 6.2.2
前端页面
PDf转换图片 .submitButton { margin-top: 20px; margin-left: 150px; background-color: #e37e10; border-radius: 10px; border: 1px solid #ff8300; }function allowFileType() { let file = document.getElementById("file").files[0]; let fileName = file.name; let suffix = fileName.substring(fileName.lastIndexOf("."),fileName.length).toLowerCase(); if('.pdf' != suffix) { alert("只允许传入PDF格式的文件!"); return false; } return true; }PDF转换图片工具
控制层接口
(图片来源网络,侵删)
/** * @description: 用于处理Pdf相关的请求 */ @Controller @RequestMapping("pdf") public class PdfController { @PostMapping("to/image") public void pdfToImage(@RequestParam("file") MultipartFile file,HttpServletResponse response) throws Exception{ ImageUtils.pdfToImage(file,response); } }
Image工具类
/** * @description: PDF转换为图片的工具类 */ @Component public class ImageUtils { /** * 图片文件格式 */ public static final String FORMAT_NAME = "png"; /** * 图片文件后缀名 */ public static final String PNG_SUFFIX = ".png"; /** * 压缩文件后缀名 */ public static final String ZIP_SUFFIX = ".zip"; /** * 对外的开放接口,用于将PDF文件转换为图片文件压缩包进行下载 * * @param file SpringMVC获取的图片文件 * @param response * @throws Exception */ public static void pdfToImage(MultipartFile file, HttpServletResponse response) throws Exception { File zipFile = generateImageFile(file); downloadZipFile(zipFile, response); } /** * 将PDF文件转换为多张图片并放入一个压缩包中 * * @param file SpringMVC获取的图片文件 * @return 图片文件压缩包 * @throws Exception 抛出异常 */ private static File generateImageFile(MultipartFile file) throws Exception { String fileName = file.getOriginalFilename(); Document document = new Document(); document.setByteArray(file.getBytes(), 0, file.getBytes().length, fileName); List fileList = new ArrayList(); for (int i = 0; i 0) { zos.write(buffer, 0, size); } zos.closeEntry(); bis.close(); file.delete(); } else { File[] files = file.listFiles(); List childrenFileList = Arrays.asList(files); zipFile(childrenFileList, zos); } } } } }
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。