- 
      
 
 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. 本文用做学习之用,如有违反任何规定,请联系我,我会及时删除!
    
   
 
