1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > java pdf转jpg 多张图片合成一张

java pdf转jpg 多张图片合成一张

时间:2021-08-21 21:16:18

相关推荐

java pdf转jpg 多张图片合成一张

@Test

public void demo7 () throws Exception {

String pathpdf = "C:\\Users\\lenovo\\Desktop\\文档.pdf";

String pathjpg = "C:\\Users\\lenovo\\Desktop\\文档.jpg";

File file = new File(pathpdf);

if(file.exists()) {

PDDocument dest = null;

//得到输入流

InputStream stream = new FileInputStream(file);

// 加载解析PDF文件

dest = PDDocument.load(stream);

PDFRenderer pdfRenderer = new PDFRenderer(dest);

PDPageTree pages = dest.getPages();

//获得PDF总页数,方便下边生成图片

int pageCount = pages.getCount();

BufferedImage[] imageArrery = new BufferedImage[pageCount];

//图片上下排布,所有的图片加起来就是,总图片高度

int nHeight = 0;

//图片宽度

int mWidth = 0;

int[][] ImageArrays = new int[pageCount][];

for (int i = 0; i < pageCount; i++) {

BufferedImage bim = pdfRenderer.renderImageWithDPI(i, 200);

imageArrery[i] = bim;

mWidth = bim.getWidth();

nHeight += bim.getHeight();

int width = imageArrery[i].getWidth();

int height = imageArrery[i].getHeight();

// 从图片中读取RGB 像素

ImageArrays[i] = new int[width * height];

ImageArrays[i] = imageArrery[i].getRGB(0, 0, width, height, ImageArrays[i], 0, width);

}

int mHeight = 0;

BufferedImage bgmImage = new BufferedImage(mWidth, nHeight, BufferedImage.TYPE_INT_RGB);

for (int i = 0; i < ImageArrays.length; i++) {

bgmImage.setRGB(0, mHeight, mWidth, imageArrery[i].getHeight(),ImageArrays[i], 0, mWidth);

mHeight += imageArrery[i].getHeight();

}

ImageIO.write(bgmImage, "jpg", new File(pathjpg));

stream.close();

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。