2
我想從PDXObjectImage一個BufferedImage已經同巴新的後綴:獲取的BufferedImage從png格式PDXObjectImage
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();
}
}
}
}
此代碼工作正常爲JPG PDXObjectImages但圖像是空與PNG圖像。
從具有PNG後綴的PDXObjectImage獲取BufferedImage的正確方法是什麼?
我也試過:
BufferedImage image = ImageIO.read(((PDPixelMap)imageObject).getPDStream().createInputStream());
但同樣圖像爲null。
我正在使用org.apache.pdfbox 1.8.11版。
如果您收到任何日誌消息?也許你必須安裝jbig2解碼器。順便說一句,最新版本是2.0.2。 –
@TilmanHausherr我沒有得到任何錯誤或警告,imageObject.getRGBImage()只是返回null。 –
然後請分享PDF。 –