将pdf转成tif格式(亲测可用)

  • Post author:
  • Post category:其他




  1. import


    java


    .


    awt


    .


    image


    .


    BufferedImage


    ;



  2. import


    java


    .


    io


    .


    FileOutputStream


    ;



  3. import


    java


    .


    io


    .


    OutputStream


    ;



  4. import


    java


    .


    util


    .


    HashMap


    ;



  5. import


    java


    .


    util


    .


    Map


    ;



  6. import


    org


    .


    icepdf


    .


    core


    .


    pobjects


    .


    Document


    ;



  7. import


    org


    .


    icepdf


    .


    core


    .


    pobjects


    .


    Page


    ;



  8. import


    org


    .


    icepdf


    .


    core


    .


    util


    .


    GraphicsRenderingHints


    ;



  9. import


    com


    .


    sun


    .


    media


    .


    jai


    .


    codec


    .


    ImageCodec


    ;



  10. import


    com


    .


    sun


    .


    media


    .


    jai


    .


    codec


    .


    ImageEncoder


    ;



  11. import


    com


    .


    sun


    .


    media


    .


    jai


    .


    codec


    .


    TIFFEncodeParam


    ;





  12. public




    class




    CreateImgByPDF




    {








  13. // 根据现成的pdf文件转换图片





  14. public




    static




    void


    main


    (


    String


    []


    args


    )




    throws




    Exception




    {




  15. img


    ();





  16. }







  17. public




    static




    void


    img


    ()




    throws




    Exception




    {








  18. // 定义Document,用于转换图片





  19. Document


    document


    =




    new




    Document


    ();





  20. // 找到路径



  21. document


    .


    setFile


    (


    "E:\\ceshi\\macth.pdf"


    );





  22. // 用来保存当前页码的页码





  23. Map


    <


    String


    ,




    Integer


    >


    map


    =




    new




    HashMap


    <


    String


    ,




    Integer


    >();





  24. float


    rotation


    =




    0f


    ;





  25. // 获取这个pdf的页码一共多少页





  26. int


    maxPages


    =


    document


    .


    getNumberOfPages


    ();





  27. // 循环pdf每一页并转换





  28. for




    (


    int


    i


    =




    0


    ;


    i


    <


    document


    .


    getNumberOfPages


    ();


    i


    ++)




    {








  29. BufferedImage


    image


    =




    (


    BufferedImage


    )


    document


    .


    getPageImage


    (


    i


    ,





  30. GraphicsRenderingHints


    .


    SCREEN


    ,




    Page


    .


    BOUNDARY_CROPBOX


    ,



  31. rotation


    ,




    (


    float


    )




    3.0


    );





  32. BufferedImage


    bufferedImage


    =




    new




    BufferedImage


    (



  33. image


    .


    getWidth


    (


    null


    ),


    image


    .


    getHeight


    (


    null


    ),





  34. // BufferedImage.TYPE_INT_RGB : 表示一个图像,该图像具有整数像素的 8 位 RGB 颜色





  35. BufferedImage


    .


    TYPE_INT_RGB


    );



  36. bufferedImage


    .


    getGraphics


    ().


    drawImage


    (


    image


    ,




    0


    ,




    0


    ,




    null


    );





  37. //图片的输出全路径





  38. OutputStream


    os


    =




    new




    FileOutputStream


    (


    "E:\\ceshi\\1\\"


    +


    i


    +


    ".tif"


    );





  39. TIFFEncodeParam


    param


    =




    new




    TIFFEncodeParam


    ();





  40. // 设置压缩方式



  41. param


    .


    setCompression


    (


    TIFFEncodeParam


    .


    COMPRESSION_DEFLATE


    );





  42. //转换成指定的格式。





  43. ImageEncoder


    enc


    =




    ImageCodec


    .


    createImageEncoder


    (


    "TIFF"


    ,


    os


    ,



  44. param


    );



  45. enc


    .


    encode


    (


    bufferedImage


    );



  46. os


    .


    close


    ();



  47. image


    .


    flush


    ();





  48. }



  49. document


    .


    dispose


    ();



  50. map


    .


    put


    (


    "pageCount"


    ,


    maxPages


    );







  51. }




  52. }

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