`

PDF转图片

    博客分类:
  • Java
 
阅读更多

 

<dependency>
	<groupId>org.apache.pdfbox</groupId>
	<artifactId>pdfbox</artifactId>
	<version>1.8.6</version>
</dependency>

 

先转换成多张图片,然后合并成一张。

 

package org.apache.pdf;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
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.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;

public class PDF2Image {
	public static void main(String[] args) {
		File pdf = new File("20140809200001.pdf");
		String imgType = "jpg";
		int pageCount = covertPdf2Image(pdf, imgType);
		mergeImg(pdf.getName(),imgType,pageCount);
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static int covertPdf2Image(File pdf, String imgType) {
		try {
			PDDocument doc = PDDocument.load(pdf);
			int pageCount = doc.getNumberOfPages();
			System.out.println(pageCount);
			List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
			String imgPrefix = pdf.getName().split("\\.")[0];
			for (int index = 0; index < pages.size(); index++) {
				BufferedImage image = pages.get(index).convertToImage();
				Iterator iter = ImageIO.getImageWritersBySuffix(imgType);
				ImageWriter writer = (ImageWriter) iter.next();
				File outFile = new File(imgPrefix + "_" + (index+1) + "." + imgType);
				FileOutputStream out = new FileOutputStream(outFile);
				ImageOutputStream outImage = ImageIO
						.createImageOutputStream(out);
				writer.setOutput(outImage);
				writer.write(new IIOImage(image, null, null));
			}
			return pages.size();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return -1;
	}

	public static void mergeImg(String imgPrefix, String imgType, int pages) {
		try {
			File tmpImg = new File(imgPrefix.split("\\.")[0]+"_1."+imgType);
			BufferedImage bufTemp = ImageIO.read(tmpImg);
			BufferedImage imageResult = new BufferedImage(bufTemp.getWidth(),
					bufTemp.getHeight() * 8, BufferedImage.TYPE_INT_RGB);
			for (int i = 1; i <= pages; i++) {
				File img = new File(imgPrefix.split("\\.")[0]+"_"+i+"."+imgType);
				BufferedImage bufImg = ImageIO.read(img);
				int width = bufImg.getWidth();
				int height = bufImg.getHeight();
				int[] imageArray = new int[width * height];
				imageArray = bufImg.getRGB(0, 0, width, height, imageArray, 0,width);
				imageResult.setRGB(0, (i - 1) * height, width, height, imageArray, 0, width);
				img.delete();
			}
			File outFile = new File("out.jpg");
			ImageIO.write(imageResult, "jpg", outFile);

		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

分享到:
评论
1 楼 calosteward 2015-09-02  
感谢楼主分享,我找的不是java代码,刚刚找到C# PDF convert to images 的代码.

相关推荐

    pdf转图片的几种实现

    本文将详细介绍几种实现PDF转图片的方法。 1. **Adobe Acrobat Pro** Adobe Acrobat Pro是处理PDF文档的专业软件,它提供了丰富的功能,包括将PDF转换为图片。用户可以选择导出整个文档或特定页面,并可以设置输出...

    [Java]PDF转图片解决中文乱码.zip

    PDF转图片是将PDF文档转换成图像格式的过程,这在处理PDF中的中文字符时尤为重要,因为转换后的图片可以避免文字乱码问题。Java中的PDFBox库是一个强大的工具,专门用于处理PDF文档,包括将PDF转换为图像。在这个...

    mutool.exe方式pdf转换图片

    在使用`mutool.exe`进行PDF转图片时,你需要首先确保已经下载并安装了MuPDF。你可以从官方网站获取最新版本的MuPDF,它通常包含一个名为`mutool.exe`的可执行文件。然后,通过命令行界面,你可以调用这个工具进行...

    pdfbox1.8.9实例图片转pdf和pdf转图片

    接下来,我们讨论“PDF转图片”。这个功能将PDF文档的每一页导出为单独的图像文件。PDFBox提供了一个`PDFRenderer`类,可以用来渲染PDF页面为图像。基本步骤如下: 1. 创建`PDDocument`对象,加载需要转换的PDF文件...

    Aspose.Pdf转图片

    PDF转图片的过程主要是通过解析PDF文档的页面内容,然后将其渲染成图像格式,常见的图像格式有JPG、PNG、BMP等。Aspose.Pdf提供了相关的类和方法来实现这一功能。 3. **转换步骤**: - **初始化PdfDocument对象**...

    基于开源PdfiumLib实现PDF转图片

    PDF转图片技术是一种将PDF文档转换为图像格式(如JPEG或PNG)的技术,这在许多场景下非常有用,比如预览、打印、分享或者在线显示。开源库PdfiumLib是Google Chrome的Pdfium项目的C++版本,允许开发者在自己的应用...

    Pdf转图片ghost4j

    总结来说,使用Ghost4J和Ghostscript进行PDF转图片的流程包括安装和配置Ghostscript,导入Ghost4J库,设置转换参数,读取PDF,执行转换并保存图片。这个过程虽然涉及多个步骤,但通过Java编程可以方便地实现自动化,...

    pdf转图片.

    PDF转图片是一个常见的需求,尤其在处理大量PDF文档并需要以图像形式进行展示或存储时。O2S.Components.PDFRender4NET.dll 是一个专门用于将PDF文档转换为图像格式的组件,它提供了32位和64位的兼容性,以适应不同...

    PDF转图片软件吾爱特别版V1.1免费绿色版

    PDF转图片软件吾爱破解版是一款流畅度高非常实用的大部分流行的图片格式的转换。想要一款好用的PDF转多格式?那就快试试脚本之家小编推荐的PDF转图片软件吾爱破解版下载使用。pdf转换出来的图片都是高清无水印,并且...

    AsposePdf转图片及word转图片等功能

    在"AsposePdf转图片"这个功能中,你可以利用Aspose.Pdf的API将PDF文档的每一页导出为图像文件,常见的格式包括JPEG、PNG、BMP等。这对于需要在网页上展示PDF内容,或者在无法直接查看PDF的设备上显示文档很有帮助。...

    集PDF转图片,PDF转word,旋转PDF,OCR识别的简单处理PDF的小工具集合

    这个“集PDF转图片,PDF转word,旋转PDF,OCR识别的简单处理PDF的小工具集合”正是为解决这些问题而设计的。 首先,我们来看"PDF转图片"功能。这是一项将PDF文档转换为图像格式的服务,通常用于打印、分享或者在不...

    java pdf转图片

    Java PDF转图片是一种常见的需求,尤其在数据可视化、文档预览或者网页集成中。这个过程涉及到将PDF文档的页面转换成图像格式,如JPEG、PNG等。以下是对这个主题的详细解析: 首先,理解PDF(Portable Document ...

    mvc、.net core 下 网页转pdf、pdf转图片、图片加水印、生成二维码、缩略图

    在这个主题中,我们将深入探讨如何在MVC和.NET Core环境下实现网页转PDF、PDF转图片、图片加水印、生成二维码以及创建缩略图等实用功能。 1. **网页转PDF** 在.NET Core中,可以使用第三方库如HtmlToPdfConverter...

    Java PDF转图片 完美方案 绝对可用

    基于apache pdfbox库实现Java PDF转图片,带源码和pom文件; 开发环境导入maven工程,PdfToImg为测试类,修改其中test.pdf和test.png的路径即可运行; PDFUtil为独立工具类,可放置任何工程中运行。 如果在linux...

    使用.NET WEBAPI开发PDF转图片接口Demo

    在这个“使用.NET WebAPI开发PDF转图片接口Demo”中,我们将探讨如何利用.NET技术栈来创建一个API,该API能够接收PDF文件,并将其转换为图像格式。这个功能在多种场景下都很有用,例如预览PDF内容、简化移动端展示或...

    PDF转图片O2S.Components.PDFRender4NET

    PDF转图片技术是IT行业中常见的数据处理需求,尤其在文档可视化、网页设计、移动应用等领域。O2S.Components.PDFRender4NET是一个专门用于将PDF文档转换为图像的DLL库,它提供了一种简单高效的方式来处理PDF到图片的...

    pdf转图片demo附源码

    PDF转图片技术是一种常见的文档处理方法,它将PDF文档中的每一页转换成图像格式,便于在不支持PDF阅读的环境中查看或在线分享。这个“pdf转图片demo附源码”项目提供了一个简单实现这一功能的例子,对于开发者来说,...

    java PDF转图片

    PDF转图片的实现主要是通过解析PDF文档的页面内容,并将其渲染成图像格式。以下是对这个主题的详细解释: 一、PDF文档结构 PDF(Portable Document Format)是一种用于表示文档的文件格式,包括文本格式和图像,...

    Java中PDF转图片

    本文将深入探讨如何使用Java库来实现这个功能,以标题“Java中PDF转图片”和描述“Java中PDF转图片”为线索,结合标签“PDF转图片”,我们将详细讲解一种常用的库——IcePDF。 IcePDF是一个开源的Java PDF库,它...

    PDF转图片工具

    PDF转图片工具是一种实用的软件应用,专门设计用于将PDF文档转换为图像格式。这种转换在许多场景下非常有用,例如当PDF文件包含无法轻松复制的扫描文本或图像,或者为了便于在不支持PDF格式的设备上查看内容时。本文...

Global site tag (gtag.js) - Google Analytics