pdf转图片工具类

太过爱你忘了你带给我的痛 2021-10-13 14:54 499阅读 0赞

导包:

  1. <dependency>
  2. <groupId>com.lowagie</groupId>
  3. <artifactId>itext</artifactId>
  4. <version>2.0.6</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.pdfbox</groupId>
  8. <artifactId>pdfbox</artifactId>
  9. <version>2.0.1</version>
  10. </dependency>

代码实现:

  1. import java.awt.image.BufferedImage;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.util.Date;
  5. import javax.imageio.ImageIO;
  6. import org.apache.pdfbox.pdmodel.PDDocument;
  7. import org.apache.pdfbox.rendering.PDFRenderer;
  8. import com.edi.framework.admin.ConfigPropertiesUtils;
  9. import com.lowagie.text.pdf.PdfReader;
  10. public class Pdf2ImageUtil {
  11. public static void main(String[] args) {
  12. String pdf2Image = pdf2Image("D:/12.pdf",100);
  13. System.out.println(pdf2Image);
  14. }
  15. /***
  16. * PDF文件转PNG图片,全部页数
  17. *
  18. * @param PdfFilePath pdf完整路径
  19. * @param dstImgFolder 图片存放的文件夹
  20. * @param dpi dpi越大转换后越清晰,相对转换速度越慢
  21. * @return
  22. */
  23. public static String pdf2Image(String PdfFilePath, int dpi) {
  24. String basepath = "位置"
  25. File file = new File(PdfFilePath);
  26. PDDocument pdDocument;
  27. try {
  28. String imgPDFPath = file.getParent();
  29. //图片存放文件夹
  30. String dstImgFolder = basepath + File.separator + "peopleSignFile"+ File.separator + "jpg"+ File.separator + DateUtils.formatDate.format(new Date()) ;
  31. int dot = file.getName().lastIndexOf('.');
  32. String imagePDFName = file.getName().substring(0, dot); // 获取图片文件名
  33. String imgFolderPath = null;
  34. if (dstImgFolder.equals("")) {
  35. imgFolderPath = imgPDFPath;// 获取图片存放的文件夹路径
  36. } else {
  37. imgFolderPath = dstImgFolder;
  38. }
  39. if (createDirectory(imgFolderPath)) {
  40. pdDocument = PDDocument.load(file);
  41. PDFRenderer renderer = new PDFRenderer(pdDocument);
  42. /* dpi越大转换后越清晰,相对转换速度越慢 */
  43. PdfReader reader = new PdfReader(PdfFilePath);
  44. int pages = reader.getNumberOfPages();
  45. StringBuffer imgFilePath = null;
  46. String path = "";
  47. for (int i = 0; i < pages; i++) {
  48. String imgFilePathPrefix = imgFolderPath + File.separator + imagePDFName;
  49. imgFilePath = new StringBuffer();
  50. imgFilePath.append(imgFilePathPrefix);
  51. imgFilePath.append("_");
  52. imgFilePath.append(String.valueOf(i + 1));
  53. imgFilePath.append(".jpg");
  54. File dstFile = new File(imgFilePath.toString());
  55. BufferedImage image = renderer.renderImageWithDPI(i, dpi);
  56. ImageIO.write(image, "jpg", dstFile);
  57. path = dstFile.getAbsolutePath();
  58. }
  59. System.out.println("PDF文档转JPG图片成功!");
  60. return path;
  61. } else {
  62. System.out.println("PDF文档转JPG图片失败:" + "创建" + imgFolderPath + "失败");
  63. return "";
  64. }
  65. } catch (IOException e) {
  66. e.printStackTrace();
  67. }
  68. return "";
  69. }
  70. private static boolean createDirectory(String folder) {
  71. File dir = new File(folder);
  72. if (dir.exists()) {
  73. return true;
  74. } else {
  75. return dir.mkdirs();
  76. }
  77. }
  78. }

发表评论

表情:
评论列表 (有 0 条评论,499人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java制作PDF图片工具

    背景: > 前几日一位朋友突然找我帮忙将PDF转换成图片,我仗义相助,建议他使用福昕阅读器,然而他说转换需要VIP会员,老贵了。我花了半天时间寻找免费会员,结果不出所料没有找