在下面的post中,解释了如何使用pdfbox从pdf中提取图像。
此解决方案不适用于pdfbox 1.83,因为不推荐使用org.apache.pdfbox.pdmodel.PDResources.getImages函数。
应该替换getImages函数的函数是getXObjects。
问题是此函数返回Map<String, PDXObject>
而不是Map<String, PDXObjectImage>
。
我怎么知道某个PDXObject代表PDXObjectImage?
我找到的唯一解决方案是
if(pdxObj.getClass().equals(PDXObjectImage.class) || PDXObjectImage.class.isAssignableFrom(pdxObj.getClass())) {
}
但我认为这个解决方案相当丑陋。
有更好的解决方案吗?