-
import
java
.
awt
.
image
.
BufferedImage
;
-
import
java
.
io
.
FileOutputStream
;
-
import
java
.
io
.
OutputStream
;
-
import
java
.
util
.
HashMap
;
-
import
java
.
util
.
Map
;
-
import
org
.
icepdf
.
core
.
pobjects
.
Document
;
-
import
org
.
icepdf
.
core
.
pobjects
.
Page
;
-
import
org
.
icepdf
.
core
.
util
.
GraphicsRenderingHints
;
-
import
com
.
sun
.
media
.
jai
.
codec
.
ImageCodec
;
-
import
com
.
sun
.
media
.
jai
.
codec
.
ImageEncoder
;
-
import
com
.
sun
.
media
.
jai
.
codec
.
TIFFEncodeParam
;
-
-
public
class
CreateImgByPDF
{
-
-
// 根据现成的pdf文件转换图片
-
public
static
void
main
(
String
[]
args
)
throws
Exception
{
-
img
();
-
}
-
-
public
static
void
img
()
throws
Exception
{
-
-
// 定义Document,用于转换图片
-
Document
document
=
new
Document
();
-
// 找到路径
-
document
.
setFile
(
"E:\\ceshi\\macth.pdf"
);
-
// 用来保存当前页码的页码
-
Map
<
String
,
Integer
>
map
=
new
HashMap
<
String
,
Integer
>();
-
float
rotation
=
0f
;
-
// 获取这个pdf的页码一共多少页
-
int
maxPages
=
document
.
getNumberOfPages
();
-
// 循环pdf每一页并转换
-
for
(
int
i
=
0
;
i
<
document
.
getNumberOfPages
();
i
++)
{
-
-
BufferedImage
image
=
(
BufferedImage
)
document
.
getPageImage
(
i
,
-
GraphicsRenderingHints
.
SCREEN
,
Page
.
BOUNDARY_CROPBOX
,
-
rotation
,
(
float
)
3.0
);
-
BufferedImage
bufferedImage
=
new
BufferedImage
(
-
image
.
getWidth
(
null
),
image
.
getHeight
(
null
),
-
// BufferedImage.TYPE_INT_RGB : 表示一个图像,该图像具有整数像素的 8 位 RGB 颜色
-
BufferedImage
.
TYPE_INT_RGB
);
-
bufferedImage
.
getGraphics
().
drawImage
(
image
,
0
,
0
,
null
);
-
//图片的输出全路径
-
OutputStream
os
=
new
FileOutputStream
(
"E:\\ceshi\\1\\"
+
i
+
".tif"
);
-
TIFFEncodeParam
param
=
new
TIFFEncodeParam
();
-
// 设置压缩方式
-
param
.
setCompression
(
TIFFEncodeParam
.
COMPRESSION_DEFLATE
);
-
//转换成指定的格式。
-
ImageEncoder
enc
=
ImageCodec
.
createImageEncoder
(
"TIFF"
,
os
,
-
param
);
-
enc
.
encode
(
bufferedImage
);
-
os
.
close
();
-
image
.
flush
();
-
}
-
document
.
dispose
();
-
map
.
put
(
"pageCount"
,
maxPages
);
-
-
}
-
-
}
本文是转载的,转载地址为:https://blog.csdn.net/weixin_39513166/article/details/78695201
另外,用到两个jar包,分别为:jai_codec-1.1.3.jar 、icepdf-core-4.3.3.jar
注:1. 转换后的tif会比pdf大几倍,具体几倍没有测试,感兴趣的可以测试一下,请留言告诉我,多谢了。
2. 本文用做学习之用,如有违反任何规定,请联系我,我会及时删除!