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


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



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值