java pdf 转tif_使用java对pdf转成tiff文件
概述
基于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文件相关推荐
- java eclipse生成apk,将Eclipse Android项目打包成APK文件
将Eclipse Android项目打包成APK文件是本文要介绍的内容,主要是来了解并学习Eclipse Android打包的内容,具体关于Eclipse Android内容的详解来看本文. Ecli ...
- java中使用pdfBox打印pdf;java web打印pdf;静默打印;jar程序打包成exe文件;exe4j的使用
java编写打印控件 web打印一直是个棘手的问题,市面上的第三方打印插件也是贵的离谱,这里给出一个可行的解决方案. SpringBoot项目的web服务,实现的功能: 获取电脑可用的打印机列表 设置 ...
- java 取pdf表格内容数据_Java 在PDF中添加表格
本文将介绍通过Java编程在PDF文档中添加表格的方法.添加表格时,可设置表格边框.单元格对齐方式.单元格背景色.单元格合并.插入图片.设置行高.列宽.字体.字号等. 使用工具:Free Spire. ...
- java 填充pdf_Java如何创建和填充PDF表单域(代码示例)
本篇文章给大家带来的内容是关于Java如何创建和填充PDF表单域(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 表单域,可以按用途分为多种不同的类型,常见的有文本框.多行 ...
- java 并发 mobi_Java并发编程的艺术pdf txt mobi下载及读书笔记
Java并发编程的艺术pdf txt mobi读书笔记 如何解决资源限制的问题:对于软件资源限制,可以考虑使用资源池将资源复用.比如使用连接池将数据库和Socket连接复用,或者在调用对方webser ...
- itext java_iText - PDF类库 - 组件类库 - JAVA开源项目 - 开源吧
相关开源项目 Connla:Connla是一个Java包用于创建可导成TXT,CSV,HTML,XHTML,XML,PDF和XLS等格式的数据集. FOP:FOP是由James Tauber发起的一个 ...
- android镊 姩瀹夎 apk,用java写的jodconverter借用openoffice来转换office成pdf的示例代码...
下载安装java sdk7安装完成即可.不用设置环境 安装openoffice到d:/program files/open....目录中 创建目录 g:/sys/qidizi/desktop/java ...
- 创建面板对象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 ...
- java下载pdf6_疯狂java讲义第6版 电子版(pdf格式)
疯狂java讲义第6版pdf是李刚打造的经典java编程图书的最新版,为了帮助更多的读者能真正掌握Java编程,感受到Java语言的魅力,领会到Java编程的快乐,作者根据多年来的Java授课经验,精 ...
- 大学生java项目创意申请表_基于java ee的大学生作品展示系统.pdf
基于java ee的大学生作品展示系统.pdf 还剩 4页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 第34卷第3期 2015年6月 南昌工程学院学 ...
最新文章
- Oracle 变量绑定与变量窥视合集系列二
- python零基础能学吗 知乎-Python零基础学习能学好吗?老男孩Python面授班
- ubuntu wps缺少字体_WPS各版本
- python获取网页源码被拒绝_Python3 请求网页源码 目标计算机积极拒绝,无法连接...
- Java_MD5的使用
- (转)bash条件判断之if语句
- 萌新关于C#委托一点见解
- AB PLC 1769_L24ER_QB1B新机测试固件下载-程序下载
- 计算机房在五楼英语,“我住在五楼”怎么用英语表达?
- Android 获取手机号码
- (DINO) Emerging Properties in Self-Supervised Vision Transformers——自监督ViT的新属性和几点思考
- 深圳两青年在伊拉克炮火中淘金400万
- QAxObject 读写 excel
- 一个啥也不是的鬼畜视频创作示例
- Win10系统还原文件默认打开方式
- java中数组的引用是什么意思_java中的数组是引用数据类型。
- 计算机wps系统的造字程序在哪里,Windows10系统自带造字程序在哪
- Arduino uno esp01s 硬串口通信
- elementUI checkbox选中与取消选中
- Python游戏开发-02-生成日志写入文件
热门文章
- tomcat未自动解压war包原因分析
- 《汉魏风云》1、速度与激情——无双吕布的悲喜人生
- 联想计算机电源维修,自己动手修理联想X1 YOGA电源故障
- 医学专业学语文数学英语计算机嚒,医学专业到底有哪些一级学科,你知道吗?...
- xampp套件使用php,php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手),xampp安装使用...
- xampp的安装教程
- 华为USG6000V 多ISP接入Internet(基于ISP目的地址的多出口)
- jquery版本之间的冲突
- Redis的安装配置与使用
- echarts 自定义 tooltip