概述

基于Java,将pdf转成单一的tiff文件。

MAVEN依赖

com.sun.media

jai_codec

1.1-mr

javax.media

jai_core

1.1-mr

com.sun.medialib

mlibwrapper_jar

1.1

org.apache.pdfbox

pdfbox

2.0.0-RC2

部分依赖在maven中心仓库中找不到,现提供统一的压缩文件:依赖下载。

实现

Pdf2TiffUtil

public static pdf2Tiff (is: InputStream, os: OutputStream): void

将指定的pdf转成单一tiff文件,写到指定的输出流。参数is提供pdf文档的内容,参数os指定输出流。

代码

Pdf2TiffConstant

package cn.ljl.javaweb.demo.pdf2tiff;

public class Pdf2TiffConstant {

/** 图片格式 */

public static final String IMG_FORMAT = "tiff";

/** 打印精度设置 */

public static final int DPI = 160; //图片的像素

}

Pdf2TiffUtil

package cn.ljl.javaweb.demo.pdf2tiff;

import static cn.ljl.javaweb.demo.pdf2tiff.Pdf2TiffConstant.DPI;

import static cn.ljl.javaweb.demo.pdf2tiff.Pdf2TiffConstant.IMG_FORMAT;

import java.awt.image.BufferedImage;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.ArrayList;

import java.util.List;

import javax.media.jai.JAI;

import javax.media.jai.PlanarImage;

import org.apache.pdfbox.pdmodel.PDDocument;

import org.apache.pdfbox.rendering.ImageType;

import org.apache.pdfbox.rendering.PDFRenderer;

import com.sun.media.jai.codec.ImageCodec;

import com.sun.media.jai.codec.ImageEncoder;

import com.sun.media.jai.codec.TIFFEncodeParam;

public class Pdf2TiffUtil {

/**

* 从输入流读取pdf,转化为tiff后写入输出流.

* 参考列表:

*

*

* "http://www.coderanch.com/t/497492/java/java/Convert-PDF-files-Tiff-files"

* >Convert PDF files to Tiff files

*

* "http://www.oracle.com/technetwork/cn/java/javaee/downloads/readme-1-1-2-137176.html"

* >Java(TM) Advanced Imaging API README

*

*

* @param is

*            输入流,提供pfg内容.

* @param os

*            输出流.

*/

static {

System.setProperty("com.sun.media.jai.disableMediaLib", "true");

}

public static void pdf2Tiff(InputStream is, OutputStream os) {

PDDocument doc = null;

try {

doc = PDDocument.load(is);

int pageCount = doc.getNumberOfPages();

PDFRenderer renderer = new PDFRenderer(doc); // 根据PDDocument对象创建pdf渲染器

List piList = new ArrayList(pageCount - 1);

for (int i = 0 + 1; i < pageCount; i++) {

BufferedImage image = renderer.renderImageWithDPI(i, DPI,

ImageType.RGB);

PlanarImage pimg = JAI.create("mosaic", image);

piList.add(pimg);

}

TIFFEncodeParam param = new TIFFEncodeParam();// 创建tiff编码参数类

param.setCompression(TIFFEncodeParam.COMPRESSION_DEFLATE);// 压缩参数

param.setExtraImages(piList.iterator());// 设置图片的迭代器

BufferedImage fimg = renderer.renderImageWithDPI(0, DPI,

ImageType.RGB);

PlanarImage fpi = JAI.create("mosaic", fimg); // 通过JAI的create()方法实例化jai的图片对象

ImageEncoder enc = ImageCodec.createImageEncoder(IMG_FORMAT, os,

param);

enc.encode(fpi);// 指定第一个进行编码的jai图片对象,并将输出写入到与此

} catch (IOException e) {

e.printStackTrace();

} finally {

try {

if (doc != null)

doc.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

java pdf 转tif_使用java对pdf转成tiff文件相关推荐

  1. java eclipse生成apk,将Eclipse Android项目打包成APK文件

    将Eclipse Android项目打包成APK文件是本文要介绍的内容,主要是来了解并学习Eclipse Android打包的内容,具体关于Eclipse Android内容的详解来看本文. Ecli ...

  2. java中使用pdfBox打印pdf;java web打印pdf;静默打印;jar程序打包成exe文件;exe4j的使用

    java编写打印控件 web打印一直是个棘手的问题,市面上的第三方打印插件也是贵的离谱,这里给出一个可行的解决方案. SpringBoot项目的web服务,实现的功能: 获取电脑可用的打印机列表 设置 ...

  3. java 取pdf表格内容数据_Java 在PDF中添加表格

    本文将介绍通过Java编程在PDF文档中添加表格的方法.添加表格时,可设置表格边框.单元格对齐方式.单元格背景色.单元格合并.插入图片.设置行高.列宽.字体.字号等. 使用工具:Free Spire. ...

  4. java 填充pdf_Java如何创建和填充PDF表单域(代码示例)

    本篇文章给大家带来的内容是关于Java如何创建和填充PDF表单域(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 表单域,可以按用途分为多种不同的类型,常见的有文本框.多行 ...

  5. java 并发 mobi_Java并发编程的艺术pdf txt mobi下载及读书笔记

    Java并发编程的艺术pdf txt mobi读书笔记 如何解决资源限制的问题:对于软件资源限制,可以考虑使用资源池将资源复用.比如使用连接池将数据库和Socket连接复用,或者在调用对方webser ...

  6. itext java_iText - PDF类库 - 组件类库 - JAVA开源项目 - 开源吧

    相关开源项目 Connla:Connla是一个Java包用于创建可导成TXT,CSV,HTML,XHTML,XML,PDF和XLS等格式的数据集. FOP:FOP是由James Tauber发起的一个 ...

  7. android镊 姩瀹夎 apk,用java写的jodconverter借用openoffice来转换office成pdf的示例代码...

    下载安装java sdk7安装完成即可.不用设置环境 安装openoffice到d:/program files/open....目录中 创建目录 g:/sys/qidizi/desktop/java ...

  8. 创建面板对象Java,从PNG图像或Java面板创建PDF

    I'm looking for a Java library that will can take a Image (PNG) and create a PDF. Or Create the PDF ...

  9. java下载pdf6_疯狂java讲义第6版 电子版(pdf格式)

    疯狂java讲义第6版pdf是李刚打造的经典java编程图书的最新版,为了帮助更多的读者能真正掌握Java编程,感受到Java语言的魅力,领会到Java编程的快乐,作者根据多年来的Java授课经验,精 ...

  10. 大学生java项目创意申请表_基于java ee的大学生作品展示系统.pdf

    基于java ee的大学生作品展示系统.pdf 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 第34卷第3期 2015年6月 南昌工程学院学 ...

最新文章

  1. Oracle 变量绑定与变量窥视合集系列二
  2. python零基础能学吗 知乎-Python零基础学习能学好吗?老男孩Python面授班
  3. ubuntu wps缺少字体_WPS各版本
  4. python获取网页源码被拒绝_Python3 请求网页源码 目标计算机积极拒绝,无法连接...
  5. Java_MD5的使用
  6. (转)bash条件判断之if语句
  7. 萌新关于C#委托一点见解
  8. AB PLC 1769_L24ER_QB1B新机测试固件下载-程序下载
  9. 计算机房在五楼英语,“我住在五楼”怎么用英语表达?
  10. Android 获取手机号码
  11. (DINO) Emerging Properties in Self-Supervised Vision Transformers——自监督ViT的新属性和几点思考
  12. 深圳两青年在伊拉克炮火中淘金400万
  13. QAxObject 读写 excel
  14. 一个啥也不是的鬼畜视频创作示例
  15. Win10系统还原文件默认打开方式
  16. java中数组的引用是什么意思_java中的数组是引用数据类型。
  17. 计算机wps系统的造字程序在哪里,Windows10系统自带造字程序在哪
  18. Arduino uno esp01s 硬串口通信
  19. elementUI checkbox选中与取消选中
  20. Python游戏开发-02-生成日志写入文件

热门文章

  1. tomcat未自动解压war包原因分析
  2. 《汉魏风云》1、速度与激情——无双吕布的悲喜人生
  3. 联想计算机电源维修,自己动手修理联想X1 YOGA电源故障
  4. 医学专业学语文数学英语计算机嚒,医学专业到底有哪些一级学科,你知道吗?...
  5. xampp套件使用php,php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手),xampp安装使用...
  6. xampp的安装教程
  7. 华为USG6000V 多ISP接入Internet(基于ISP目的地址的多出口)
  8. jquery版本之间的冲突
  9. Redis的安装配置与使用
  10. echarts 自定义 tooltip