java切图_java用icebox切图

这篇博客介绍了如何利用Java的IcePDF库将PDF文档的每一页转换为图片。首先,导入必要的IcePDF库,然后通过Document和PdfReader类读取PDF文件。接着,获取页面尺寸并缩放,遍历所有页面,使用getPageImage方法生成BufferedImage,并进一步处理保存为PNG格式的图片。最后,确保资源得到适当释放。
摘要由CSDN通过智能技术生成

引入icebox jar包

dd333e39dcf40df7eb7be5496f184c7c.png

import org.icepdf.core.pobjects.Document;

import org.icepdf.core.pobjects.Page;

import org.icepdf.core.util.GraphicsRenderingHints;

切图:

public static void cutting(String url1, String url2, String contractId) throws IOException{

//将pdf按页生成图片

String filePath = url1;

Document document = new Document();

Rectangle tempReader = null;

PdfReader pdfReader = null;

float scale = 1.3f;

float rotation = 0f;

int height = 0;

int width = 0;

try {

String urls = url2+contractId+"/";

File files = new File(urls);

if(!files.exists()){

files.mkdirs();

}

document.setFile(filePath);

pdfReader = new PdfReader(filePath);

tempReader = pdfReader.getPageSize(1);

height = (int)tempReader.getHeight();

width = (int)tempReader.getWidth();

for (int i = 0; i < document.getNumberOfPages(); i++) {

BufferedImage image = (BufferedImage)document.getPageImage(i,GraphicsRenderingHints.SCREEN,Page.BOUNDARY_CROPBOX, rotation, scale);

BufferedImage tempImage = resize(image,width,height);

RenderedImage rendImage = tempImage;

ImageIO.write(rendImage, "PNG", new File(urls+contractId+"_"+i+".png"));

tempImage.flush();

image.flush();

}

} catch (Exception e) {

e.printStackTrace();

}finally{

document.dispose();

if(null!=pdfReader){

pdfReader.close();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值