赞
踩
PDF转图片工具类
亲测可以使用,无需下载其他jar包
pom.xml
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.20</version>
</dependency>
PDFToIMG.java
import java.awt.image.BufferedImage; import java.io.*; import java.util.Iterator; import java.util.List; import javax.imageio.IIOImage; import javax.imageio.ImageIO; import javax.imageio.ImageWriter; import javax.imageio.stream.ImageOutputStream; import org.apache.pdfbox.exceptions.COSVisitorException; import org.apache.pdfbox.pdfparser.PDFParser; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.springframework.stereotype.Component; /** * @description: PDF转图片工具类 * @author: LCHYUE * @time: 2021/6/15 13:35 */ @Component public class PDFToIMG { public final static String IMG_TYPE_JPG = "jpg"; public final static String IMG_TYPE_PNG = "png"; // public static void main(String[] args) throws IOException { // App app = new App(); // app.pdf2img("D:\\测试文件.pdf", "D:", IMG_TYPE_PNG); PDDocument pdDocument = app.pdfInfo("D:\\api.pdf"); // } /** * @param pdfPath pdf文件的路径 * @param savePath 图片保存的地址 */ public void pdf2img(String pdfPath, String savePath) { //imgType 图片保存方式 String imgType = IMG_TYPE_PNG; // String fileName = pdfPath.substring(pdfPath.lastIndexOf("\\") + 1, pdfPath.length());/*---window---*/ String fileName = pdfPath.substring(pdfPath.lastIndexOf(File.separator) + 1, pdfPath.length());/*---linux---*/ fileName = fileName.substring(0, fileName.lastIndexOf(".")); InputStream is = null; PDDocument pdDocument = null; try { is = new BufferedInputStream(new FileInputStream(pdfPath)); PDFParser parser = new PDFParser(is); parser.parse(); pdDocument = parser.getPDDocument(); List pages = pdDocument.getDocumentCatalog().getAllPages(); for (int i = 0; i < pages.size(); i++) { // String saveFileName = savePath + "\\" + fileName + i + "." + imgType; /*---window---*/ String saveFileName = savePath + File.separator + fileName + i + "." + imgType;/*---linux---*/ PDPage page = (PDPage)pages.get(i); pdfPage2Img(page, saveFileName, imgType); } } catch (Exception e) { e.printStackTrace(); } finally { if (pdDocument != null) { try { pdDocument.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * pdf页转换成图片 * * @param page * @param saveFileName * @throws IOException */ public void pdfPage2Img(PDPage page, String saveFileName, String imgType) throws IOException { BufferedImage img_temp = page.convertToImage(); Iterator it = ImageIO.getImageWritersBySuffix(imgType); ImageWriter writer = (ImageWriter) it.next(); ImageOutputStream imageout = ImageIO.createImageOutputStream(new FileOutputStream(saveFileName)); writer.setOutput(imageout); writer.write(new IIOImage(img_temp, null, null)); } public PDDocument pdfInfo(String filePath) throws IOException { InputStream is = new BufferedInputStream(new FileInputStream(filePath)); PDFParser parser = new PDFParser(is); parser.parse(); PDDocument pdDocument = parser.getPDDocument(); System.out.println("pageNum:" + pdDocument.getNumberOfPages()); return pdDocument; } public void createPdf() throws COSVisitorException, IOException { PDDocument document = new PDDocument(); PDPage blankPage = new PDPage(); document.addPage(blankPage); document.save("D:\\test.pdf"); document.close(); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。