根据pdf转换成tif图片

代码示例:
(jar包在附件里)

 
 
  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. }

猜你喜欢

转载自blog.csdn.net/weixin_39513166/article/details/78695201