Java 从pdf的字节数组中获取pdf的第一页作为图像

Java 从pdf的字节数组中获取pdf的第一页作为图像,java,image,bytearray,itext,pdf-reader,Java,Image,Bytearray,Itext,Pdf Reader,我在字节数组中得到了一个pdf文件。我只想将pdf的第一页转换为图像 我已经厌倦了com.lowagie.text.pdf提供的课程,如下所示- PdfReader reader = new PdfReader(input); reader.selectPages("1"); File file = new File("D:/img1.jpg"); BufferedImage pdfImage = ImageIO.read(new ByteArrayInputStream(reader.getP

我在
字节数组
中得到了一个pdf文件。我只想将pdf的第一页转换为
图像

我已经厌倦了
com.lowagie.text.pdf
提供的课程,如下所示-

PdfReader reader = new PdfReader(input);
reader.selectPages("1");
File file = new File("D:/img1.jpg");
BufferedImage pdfImage = ImageIO.read(new ByteArrayInputStream(reader.getPageContent(1)));
ImageIO.write(pdfImage, "jpg", file);
这样做会在调用
ImageIO.write
时出现异常? 当我获取reader.getPageContent(1)返回的字节数组的大小时,我得到一个1000+的值。让我困惑的是我为什么会得到这个例外

例外情况-

java.lang.IllegalArgumentException: image == null!
我也试过itext,但没用


你能给我建议一种从pdf文件的字节数组中获取第一页图像(第一页为图像)的方法吗?

据我所知,这在iText中是不可能的(至少在一段时间前,我搜索类似问题时)

但您可以从以下位置使用:


为此编写包装器很容易。也许同时PDFBox中也提供了这样一个包装器。

回答了我自己的问题,这样其他人就可以从中受益。 经过一些研究,我找到了答案

看看这个

PDFDocumentReader document=新的PDFDocumentReader();
PageDetail PageDetail=新的PageDetail(“,”“,”);
ResourceDetail det=document.getPageAsImage(pageDetail);
BuffereImage image=ImageIO.read(新的ByteArrayInputStream(det.getBytes());
File File=新文件(“d:/img2.jpg”);
write(图像,“jpg”,文件);

我认为
getPageContent
不会返回图像。你确定这个库提供了这样的功能吗?@Banthar-
getPageContent
返回
byte array
,我通过它来获取
ByteArrayInputStream
,然后我试图写一个
图像
。你知道pdf实际上是建立在PDFBox上的吗?
String [] args =  new String[7];
args[0] = "-startPage";
args[1] = "1";
args[2] = "-endPage";
args[3] = "1";
args[4] = "-outputPrefix";
args[5] = "MyJpgFile";
args[6] = "MyPdfFile";

PDFToImage.main(args);
PDFDocumentReader document = new PDFDocumentReader(<byteArraOfThePDF>);
PageDetail pageDetail = new PageDetail("<docIDanything>", "", <pagenumber>, "");
ResourceDetail det = document.getPageAsImage(pageDetail);

BufferedImage image = ImageIO.read(new ByteArrayInputStream(det.getBytes()));
File file = new File("d:/img2.jpg");
ImageIO.write(image, "jpg", file);