`
PrideSnow
  • 浏览: 240888 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

java将pdf文件转成图片,并且在转了之后删除pdf文件

    博客分类:
  • java
阅读更多

/**

   * pdf转成img

   */

public static void changePdfToImg() {

    try {

      File file = new File("E:\\test\\baseInfo_2.pdf");

      RandomAccessFile raf = new RandomAccessFile(file, "r");

      FileChannel channel = raf.getChannel();

      MappedByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel.size());

      PDFFile pdffile = new PDFFile(buf);

      for (int i = 1; i <= pdffile.getNumPages(); i++) {

        PDFPage page = pdffile.getPage(i);

        Rectangle rect = new Rectangle(0, 0, ((int) page.getBBox().getWidth()), ((int) page.getBBox().getHeight()));

        Image img = page.getImage(rect.width, rect.height, rect,

            null, // null for the ImageObserver

            true, // fill background with white

            true // block until drawing is done

            );

        BufferedImage tag = new BufferedImage(rect.width, rect.height, BufferedImage.TYPE_INT_RGB);

        tag.getGraphics().drawImage(img, 0, 0, rect.width, rect.height, null);

        FileOutputStream out = new FileOutputStream("E:\\test\\img\\" + i + ".jpg"); // 输出到文件流

        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);

        JPEGEncodeParam param2 = encoder.getDefaultJPEGEncodeParam(tag);

        param2.setQuality(1f, false);// 1f是提高生成的图片质量

        encoder.setJPEGEncodeParam(param2);

        encoder.encode(tag); // JPEG编码

        out.close();

      }

      channel.close();

      raf.close();

      unmap(buf);//如果要在转图片之后删除pdf,就必须要这个关闭流和清空缓冲的方法

    } catch (FileNotFoundException e) {

      e.printStackTrace();

    } catch (IOException e) {

      e.printStackTrace();

    }

  }

/**

   * 清空缓冲

   * @param buffer

   */

  public static void unmap(final Object buffer) {

    AccessController.doPrivileged(new PrivilegedAction() {

      public Object run() {

        try {

          Method getCleanerMethod = buffer.getClass().getMethod("cleaner", new Class[0]);

          getCleanerMethod.setAccessible(true);

          sun.misc.Cleaner cleaner = (sun.misc.Cleaner) getCleanerMethod.invoke(buffer, new Object[0]);

          cleaner.clean();

        } catch (Exception e) {

          e.printStackTrace();

        }

        return null;

      }

    });

  }

 

分享到:
评论

相关推荐

    java实现pdf上传,下载,在线预览,删除,修改等功能

    在Java开发中,处理PDF文件是一项常见的任务,包括上传、下载、在线预览、删除以及修改等操作。这里我们将深入探讨这些功能的实现,并结合标签`java xpdf java实现pdf`来讨论XPDF库在Java中的应用。 1. **PDF上传**...

    DWG图纸转PDF文件

    根据给定的信息,本文将详细解析如何利用Java技术将AutoCAD的DWG图纸转换为PDF文件格式,并深入探讨实现这一转换的关键步骤和技术细节。 ### 一、DWG图纸与PDF文件的基本概念 #### 1.1 DWG图纸简介 DWG是一种由...

    java多种方式实现pdf文件电子签名

    PDF文件的电子签名是现代数字化世界中确保文档完整性和不可篡改性的重要手段。Java作为广泛应用的编程语言,提供了多种库来实现PDF的电子签名功能。在这个项目中,我们主要探讨了利用iTextPDF和PDFBox两个库在Java...

    java实现pdf上传、下载、在线预览、删除、修改等功能

    删除PDF文件相对简单,只需要调用Java的File类提供的delete()方法。 ```java File file = new File(filePath); if (file.exists() && !file.isDirectory()) { file.delete(); } ``` 5. **PDF修改**: 修改...

    java操作pdf文件

    PDF文件是一种固定布局的文件格式,旨在保持文档的原始外观和感觉,无论在哪个设备上查看。它由多个对象组成,如页面、字体、图像和表单字段,这些对象通过引用相互连接。 iText库为开发者提供了一套API,使得我们...

    JAVA将PDF转图片代码包含test和jar 包

    3. **图像处理**:在将PDF转换为图片的过程中,可能会涉及到图像质量的设置,例如分辨率、颜色模式等。Java的`java.awt.image`包提供了丰富的类和接口,如BufferedImage和Graphics2D,用于创建、处理和显示图像。 4...

    PDF文件转换为OFFICE文件工具

    PDF文件转换为OFFICE文件工具是一款实用的软件,专门设计用于将PDF文档转换成各种常见的Microsoft Office格式,如Word、Excel和PowerPoint,以便用户能够更轻松地进行编辑和修改。这种转换对于那些需要处理大量PDF...

    JAVA删除PDF空白页

    5. 如果页面非空,使用`PdfCopy`或`PdfStamper`将其添加到新的PDF文件中。 6. 完成遍历后,关闭`PdfReader`和`PdfStamper`,并用新生成的PDF替换原始文件。 接下来,我们转向PDFBox,这是Apache提供的一款开源PDF库...

    java PDF文件处理库 aspose-pdf-17.8.jar ,好用

    Java PDF文件处理是一个重要的领域,尤其在开发企业级应用时,常常需要对PDF文档进行创建、编辑、转换或渲染等操作。Aspose.PDF是一款强大的Java库,它为开发者提供了全面的API,使得处理PDF文档变得简单高效。在这...

    分享aspose 将PDF转WOR for java 去限制页码数量限制与水印版

    1. **加载PDF文档**:使用`Document`类加载PDF文件,例如: ```java Document doc = new Document("input.pdf"); ``` 2. **转换为Word文档**:创建一个`DocumentBuilder`实例,然后使用`importNode`方法将PDF...

    java递归删除文件和文件夹.pdf

    "Java 递归删除文件和文件夹" Java 递归删除文件和文件夹是 Java 编程中一个常见的操作。该操作需要使用 Java 的 File 类来实现,通过递归调用来删除文件和文件夹。 File 类 在 Java 中,File 类是用于表示文件和...

    Java实现word excel ppt转pdf

    实现word excel ppt转为pdf,并提供转格式后删除原来的文件。(需要使用jcom)

    图片转换成pdf代码

    在实际应用中,用户需要具备一定的Java编程基础,理解如何运行Java类,以及如何将图片和PDF文件路径作为参数传递给程序。此外,了解如何集成和使用相关库也非常重要。这个压缩包提供的代码可以作为一个学习实例,...

    OpenPDF是用于创建和编辑PDF文件的开源Java库

    7. **PDF文档操作**:除了创建,OpenPDF还能读取和修改已存在的PDF文件,比如添加、删除、移动页面,或者合并多个PDF文件。 8. **事件处理**:开发者可以通过注册监听器来处理PDF生成过程中的各种事件,如页眉页脚...

    pdf转文字和图片

    在这个“pdf转文字和图片”的压缩包中,很可能包含了一个使用PDFBox实现的示例程序或工具,帮助用户快速实现PDF到图像和文本的转换。 1. PDF转图片: 使用PDFBox,我们可以将PDF文档的每一页转换为图像文件,如JPG...

    Java文件剪切.pdf

    Java文件剪切.pdf文件是一个关于Java语言实现文件复制、剪切、删除操作的文档。本文档提供了一个Java类FileOperateDemo,用于实现文件或文件夹的复制、剪切、删除操作。 Java文件操作 Java语言提供了多种方式来...

    将Java项目打包成可执行文件。pdf

    在IT行业中,将Java项目打包成可执行文件是常见的需求,尤其对于那些希望在没有Java环境的用户机器上运行程序的开发者来说。本教程将详细解释如何使用Eclipse IDE生成JAR文件,以及如何借助exe4j工具将JAR转换为...

    java读取PDF文件需要的包

    总结起来,Java读取PDF文件的关键在于使用合适的库,如Apache PDFBox及其依赖的FontBox。这两个库提供了全面的API和工具,涵盖了从基本的PDF解析到复杂的字体处理,是Java程序员处理PDF文档的强大武器。在使用过程中...

    java word转换pdf

    三种java转换word 的方式 1、利用小美的Jacob调用MS Office转换文档为PDF 2、JCom是日本的一个开源项目,可以轻松实现office转换pdf 3、可以利用开源的OpenOffice,这个是linux提供的一个用于office的工具,调用内部...

Global site tag (gtag.js) - Google Analytics