我正在尝试从具有png后缀的PDXObjectImage获取BufferedImage:
PDResources pdResources = pdPage.getResources();
Map<String, PDXObject> xobjects = (Map<String, PDXObject>) pdResources.getXObjects();
if (xobjects != null) {
for (String key : xobjects.keySet()) {
PDXObject xobject = xobjects.get(key);
if (xobject instanceof PDXObjectImage) {
PDXObjectImage imageObject = (PDXObjectImage) xobject;
String suffix = imageObject.getSuffix();
if (suffix != null) {
BufferedImage image = imageObject.getRGBImage();
}
}
}
}
这段代码可以正常运行,但是对于png格式的PDXObjectImages,图片为null。
如何正确地从带有PNG后缀的PDXObjectImage中获取BufferedImage?
我也尝试过:
BufferedImage image = ImageIO.read(((PDPixelMap)imageObject).getPDStream().createInputStream());
但是图片仍为空。
我正在使用的是org.apache.pdfbox 1.8.11版本。