使用Java将PDF文件转成图片
import com.sun.pdfview.PDFFile; import com.sun.pdfview.PDFPage; import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; /** * Created by David on 2016/11/15. */ public class Pdf2Pic { /** * 根据pdf文件拆分图片 * @param ossKey * @param file * @return * @throws IOException */ public static String splitPic(String ossKey,File file) throws IOException { // load a pdf from a byte buffer RandomAccessFile raf = new RandomAccessFile(file, "r"); FileChannel channel = raf.getChannel(); ByteBuffer buf = channel.map(FileChannel.MapMode.READ_ONLY, 0, channel .size()); PDFFile pdffile = new PDFFile(buf); System.out.println("页数: " + pdffile.getNumPages()); String getPdfFilePath = CheckResultConstances.PATH_PDF_PIC+ossKey; //目录不存在,则创建目录 File p=new File(getPdfFilePath); if(!p.exists()){ p.mkdir(); } System.out.println("getPdfFilePath is :"+getPdfFilePath); for (int i = 1; i <= pdffile.getNumPages(); i++) { // draw the first page to an image PDFPage page = pdffile.getPage(i); // get the width and height for the doc at the default zoom Rectangle rect = new Rectangle(0, 0, (int) page.getBBox() .getWidth(), (int) page.getBBox().getHeight()); // generate the image Image img = page.getImage(rect.width, rect.height, // width & // height rect, // clip 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); String dstName=getPdfFilePath+File.separator + i + ".jpg"; FileOutputStream out = new FileOutputStream(dstName); // 输出到文件流 System.out.println("成功保存图片到 : " +getPdfFilePath+File.separator + i + ".jpg"); // // JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); // encoder.encode(tag); // JPEG编码 String formatName = dstName.substring(dstName.lastIndexOf(".") + 1); //FileOutputStream out = new FileOutputStream(dstName); //JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out); //encoder.encode(dstImage); ImageIO.write(tag, /*"GIF"*/ formatName /* format desired */ , new File(dstName) /* target */ ); out.close(); } return getPdfFilePath; // show the image in a frame // JFrame frame = new JFrame("PDF Test"); // frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // frame.add(new JLabel(new ImageIcon(img))); // frame.pack(); // frame.setVisible(true); } public static void main(final String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { try { File file = new File("/Users/David/Downloads/test.pdf"); new Pdf2Pic().splitPic("123",file); } catch (IOException ex) { ex.printStackTrace(); } } }); } }
pom.xml依赖配置(将附件中的该jar包上传到nexus内部仓库):
<dependency> <groupId>com.sun.pdfview</groupId> <artifactId>pdfrenderer</artifactId> <version>0.9.0</version> </dependency>
参考:
相关推荐
本示例中,我们探讨的是如何使用Java编程语言将PDF文件转换为PNG图片格式。这在很多场景下非常有用,比如网页预览、移动端展示或者进行图像处理等。Java通过库如iText7提供了这样的功能。 iText7是一个强大的PDF...
在Java编程环境中,将一个URL链接的内容转换为PDF文件是一个常见的需求,这通常涉及到网络请求、HTML解析以及PDF生成等多个步骤。以下是一个详细的步骤指南,涵盖了这个过程中的关键知识点: 首先,我们需要处理URL...
此外,如果需要解码回原始的PDF文件,可以使用`Base64.Decoder`进行解码,然后将结果写入一个新的文件: ```java // 假设base64String是从某个地方获取的 byte[] decodedBytes = Base64.getDecoder().decode(base64...
1. **读取PDF文件**:使用JAVA PDF库读取PDF文件内容,包括文本、图像、表格等元素。 2. **解析PDF结构**:理解PDF文件的页面布局、字体、颜色等信息,以便在OFD中重现相同的效果。 3. **创建OFD文档结构**:根据PDF...
在Java编程环境中,将图片转换为PDF文件是一个常见的需求,特别是在文档管理和电子出版领域。这里,我们将探讨如何使用Java和特定库,如iText,来完成这个任务。iText是一个强大的开源库,专门用于创建和修改PDF文档...
Java 生成 PDF 文件是开发过程中常见的一种需求,用于将数据以规范化的格式导出或打印。在本例中,我们看到使用的是 `iText` 库,这是一个强大的 Java 库,专门用于创建和修改 PDF 文档。以下是 `iText` 的核心概念...
这些库提供了丰富的API,用于读取、解析和操作PDF文件。 2. **图像渲染**:将PDF转换为图片的关键是渲染PDF页面到图像。Apache PDFBox提供了PDDocument.drawGraphics方法,它允许我们将PDF页面渲染到Java的Graphics...
在java中通过ImageMagick安装包和im4java.jar把其他格式图片如pdf转换为PNG,JPEG等常用格式图片之间的相互转换。转换效率还可以。内有安装操作步骤及编码内容。亲测有效。 场景运用:在前端图片格式上传中,需要在...
为了在Java应用中显示PDF,通常我们会采取一种间接方法——将PDF文件转换为图片,然后在应用程序中展示这些图片。这种方法适用于那些只需要查看PDF静态内容且不需要交互功能的场景。 首先,我们需要引入必要的依赖...
将代码保存为Java文件(例如,PDFToImageConverter.java)。然后,在命令行中使用Java编译器编译...脚本将使用Apache PDFBox库打开PDF文件并将每个页面转换为JPEG格式的图像。转换后的图像将保存在指定的输出文件夹中。
1. 需要学习iText库:Java将图片组合成PDF文件的方法需要学习iText库的使用,增加了学习成本。 2. 需要图形用户界面编程:Java将图片组合成PDF文件的方法需要编写图形用户界面,增加了编程难度。 Java将图片组合成...
在Java编程环境中,将多页PDF转换为一张长图图片是一项常见的需求,特别是在文档处理、报表可视化或在线阅读场景中。本项目利用了名为`icepdf`的开源库,其核心组件是`icepdf-core-4.3.3.jar`,这是一个强大的PDF...
PDF文件添加图片是Java开发中常见的一项任务,特别是在生成报告、文档或证书等场景下,可能需要将图像插入到PDF中以增强可视化效果。这里我们将深入探讨如何使用iTextPDF库来实现在PDF中添加图片的功能。 iTextPDF...
然而,在某些情况下,我们可能需要将PDF文件转换为其他格式,例如在Java应用程序中处理数据时。Java作为一种强大的编程语言,提供了多种库和工具来实现PDF文件的转换。下面我们将深入探讨如何在Java环境中进行PDF...
PDF转图片是将PDF文档转换成图像格式的过程,这在处理PDF中的中文字符时尤为重要,因为转换后的图片可以避免文字乱码问题。Java中的PDFBox库是一个强大的工具,专门用于处理PDF文档,包括将PDF转换为图像。在这个...
在"java用poi转ppt为图片"的场景下,我们可以利用POI的API将PPT文件的每一页转换为图像。这样做的好处在于,可以方便地在网络上传输或嵌入到其他不支持PPT格式的应用中。转换过程通常涉及打开PPT文件,遍历每一页...
在这个场景中,我们将聚焦于如何利用Aspose.cad 19.5版本在Java环境中将DWG(AutoCAD图形数据格式)文件转换为PDF。 Aspose.cad是一款全面的API,专门用于处理CAD文件,支持多种格式的读取、写入和转换。在这个特定...
以上就是使用Java生成PDF文件并加盖公章图片,以及上传阿里云的基本步骤和涉及的关键技术点。实际开发中可能还需要根据具体需求进行调整,例如,公章的透明度、旋转角度等,都需要通过代码进行精确控制。
可以把pdf文件转换成jpg, gif,bmp,tiff,png 的图片格式. 可以把jpg, gif,bmp,tiff,png 的图片格式转换成pdf文件. pdf to jpg的主要特性: 1.把pdf文件转换成jpg、bmp、tiff、gif、png等等图片格式. 2.把jpg、bmp、...