public class FileUtil {
public static void main(String[] args) {
try {
System.out.println(System.currentTimeMillis());

File file = new File("E:/work/多业务线合同/服务合同--中工国际20160720.pdf");
// File file = new File("E:/work/多业务线合同/华夏科技执照.pdf");
// File file =new File("E:/study/Book--PDF/13_Struts.pdf");
InputStream input = new FileInputStream(file);
ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
byte[] b = new byte[1000];
int n;
while ((n = input.read(b)) != -1) {
bos.write(b, 0, n);
}
input.close();
bos.close();
byte[] buffer = bos.toByteArray();
pdf2Image(buffer,20);
input.close();
System.out.println(System.currentTimeMillis());
} catch (IOException e) {
e.printStackTrace();
}
}
// 使用pdfbox 完成pdf文档转换成图片
public static List<byte[]> pdf2Image(byte[] buff,int canUploadImgcount) {
List<byte[]> byteList = new ArrayList<byte[]>();
try {
PDDocument doc = PDDocument.load(new ByteArrayInputStream(buff));
int pageCount = doc.getNumberOfPages();
System.out.println(pageCount);
if(pageCount>canUploadImgcount){
return null;
}
for (int i = 0; i <pageCount; i++) {
BufferedImage image = new PDFRenderer(doc).renderImageWithDPI(i,200,ImageType.RGB);
// ImageIO.write(image, "jpg", new File("E:/pdftest/pdfbox3" + i + ".jpg"));
ByteArrayOutputStream out = new ByteArrayOutputStream();
ImageOutputStream outImage = ImageIO.createImageOutputStream(out);
ImageIO.write(image, "jpg",outImage);
byteList.add(out.toByteArray());
outImage.close();
out.close();
}
doc.close();
System.out.println("over");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return byteList;
}
public static byte[] tif2JPG(byte[] srcFileByte){
try {
InputStream bais = new ByteArrayInputStream(srcFileByte);
ImageDecoder decoder = ImageCodec.createImageDecoder("tiff", bais, null);
RenderedImage ri = decoder.decodeAsRenderedImage();
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
ImageIO.write(ri, "JPEG", outputStream);
return outputStream.toByteArray();
}catch (Exception e) {
}
return null;
}

}

pdf转图片的更多相关文章

  1. C# 给PDF添加图片背景

    C# 给PDF添加图片背景 今天要实现的是给PDF文件添加图片背景这个功能.PDF是近年来最流行的文件之一,无论是办公还是日常生活中都经常会用到,很多时候,PDF文件的背景色都是白色,看多了难免觉得累 ...

  2. C# 第三方DLL,可以实现PDF转图片,支持32位系统、64位系统

    itextsharp.dll,是一个开源的在C#中用来生成PDF文档的库文件,不少C#爱好者用它制作出了PDF文档生成器.使用时只需在你的C#项目中添加引入此组件即可,使用方法网上有很多,自己查阅一下 ...

  3. PDF转图片 C# with Adobe API

    PDF转图片大概有十几种方式,褒贬不一,我就详细给大家说一下我认为效率最高的方式,使用Adobe官方的SDK 安装acrobat reader 9.0以上即可,勾选如下组件.

  4. 在线提取PDF中图片和文字

    无需下载软件,你就可以在线提取PDF中图片和文字,http://www.extractpdf.com/不仅可以获取本地PDF文档的图片和文字,还能获取远程PDF文档的图片和文字.如下图所示:结果本人测 ...

  5. .Net的PDF转图片

    用的是破解版的 O2S.Components.PDFRender4NET.dll 插件, 简单引用即可 public static class PdfToImage { , , ) { try { / ...

  6. 使用pdfbox分页保存pdf为图片

    一.背景 pdfbox作为Apache开源的PDF操作工具,允许创建新的PDF文档,操作现有文档,以及从文档中提取内容的能力.Apache PDFBox还包括一些命令行实用工具.本文楼主主要介绍其中的 ...

  7. JAVA中pdf转图片的方法

    JAVA中实现pdf转图片可以通过第三方提供的架包,这里介绍几种常用的,可以根据自身需求选择使用. 一.icepdf.有收费版和开源版,几种方法里最推荐的.转换的效果比较好,能识别我手头文件中的中文, ...

  8. 【JAVA】pdf转图片

    最近java项目中使用到了pdf转图片的需求,在此记录一下. 1.基于GhostScript p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px ...

  9. PDF转图片工具

    点击下载( 提取码:1ll1 ) 软件功能基于mupdf,UI使用wxpython开发 功能: 支持pdf转图片,图片格式png 支持批量转换 使用: 第一步,点击按钮添加文档到列表,或直接将待转换文 ...

  10. Ubuntu下pdf和图片互转

    前边文章可以将ppt转换为pdf  查看 使用unoconv将ppt转为pdf,再使用imagemagick将pdf转为图片 这次想将pdf和图片进行互转 当前目录下只有2.ppt 1.ppt转pdf ...

随机推荐

  1. Flatten Binary Tree to Linked List ——LeetCode

    Given a binary tree, flatten it to a linked list in-place. For example,Given 1 / \ 2 5 / \ \ 3 4 6 T ...

  2. oracle连接进程数设置

    SQL> select count(*) from v$session #连接数SQL> Select count(*) from v$session where status='ACTI ...

  3. tengine rpm制作

    最近又在centos6.4下折腾tengine了,刚好不久前看了rpm包的制作方法,所以又有了搞个rpm包的想法. 1 安装centos的开发环境集成包及tengine的依赖包 1 yum group ...

  4. NSTemporaryDirectory 临时文件

    唯一标识 : NSString*identifier=[[NSProcessInfoprocessInfo]globallyUniqueString]; 创建临时文件路径: NSString *fil ...

  5. 深入理解java的异常处理机制

     JAVA异常的概念    异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的 ...

  6. Android ProgressDialog 加载进度

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools= ...

  7. 来自苹果的编程语言——Swift简单介绍

    关于 这篇文章简要介绍了苹果于WWDC 2014公布的编程语言--Swift. 原文作者: Lucida Blog 新浪微博 豆瓣 转载前请保留出处链接.谢谢. 前言 在这里我觉得有必要提一下Brec ...

  8. 一个int类型究竟占多少个字节

    一个int占多少个字节? 这个问题我们往往得到的答案是4. 可是int究竟占多少个字节,却跟你的机器环境有关. As you can see, the typical data type sizes ...

  9. LOAD DATA INFILE Syntax--官方

    LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name' [REPLACE | IGNORE] INTO TABLE tbl_n ...

  10. php parse_url 函数使用方法解析

    此函数返回一个关联数组,包含现有 URL 的各种组成部分.如果缺少了其中的某一个,则不会为这个组成部分创建数组项.组成部分为: scheme – 如 http host port pass path ...