Image 如何使用itext 7迭代pdf文件中的所有图像?

Image 如何使用itext 7迭代pdf文件中的所有图像?,image,pdf,iteration,itext7,Image,Pdf,Iteration,Itext7,我想用itext 7调整pdf文件中的图像大小。但是当我迭代所有XObject时,无法获得背景图像。 我的实现代码如下 def getAllImages(xObjects: PdfDictionary):ListBuffer[PdfName] = { var list=ListBuffer[PdfName]() xObjects.entrySet().forEach(obj=>if(obj.getValue.isStream) { val stream=xObj

我想用itext 7调整pdf文件中的图像大小。但是当我迭代所有XObject时,无法获得背景图像。 我的实现代码如下

def getAllImages(xObjects: PdfDictionary):ListBuffer[PdfName] = {
    var list=ListBuffer[PdfName]()
    xObjects.entrySet().forEach(obj=>if(obj.getValue.isStream) {
      val stream=xObjects.getAsStream(obj.getKey)
      val subtype=stream.get(PdfName.Subtype)
      if(subtype.toString.equals("/Image")){
        list += obj.getKey
      }else if(subtype.toString.equals("/Form")){
       getAllImages(obj.getValue.asInstanceOf[PdfDictionary])
      }
    })
    list
  }


  def removeWaterMarker(pdf: File, pdfnew: File, bfimgs: Array[BufferedImage]): Unit = {
    val pdfDoc: PdfDocument = new PdfDocument(new PdfReader(pdf), new PdfWriter(pdfnew))
    for( i<- 1 to pdfDoc.getNumberOfPages){
      val page=pdfDoc.getPage(i)
      val pageDict: PdfDictionary = page.getPdfObject
      val resources: PdfDictionary = pageDict.getAsDictionary(PdfName.Resources)
      val xObjects: PdfDictionary = resources.getAsDictionary(PdfName.XObject)
      val images=getAllImages(xObjects)
      resize(images)
    }
def getAllImages(xObjects:PdfDictionary):ListBuffer[PdfName]={
var list=ListBuffer[PdfName]()
xObjects.entrySet().forEach(obj=>if(obj.getValue.isStream){
val stream=xObjects.getAsStream(obj.getKey)
val subtype=stream.get(PdfName.subtype)
if(subtype.toString.equals(“/Image”)){
list+=obj.getKey
}else if(subtype.toString.equals(“/Form”)){
getAllImages(obj.getValue.asInstanceOf[PdfDictionary])
}
})
列表
}
def removeWaterMarker(pdf:File,pdfnew:File,bfimgs:Array[BuffereImage]):单位={
val pdfDoc:PdfDocument=新的PdfDocument(新的PdfReader(pdf)、新的PdfWriter(pdfnew))

对于(iIt的scala代码)。未实现resize()函数。图像也可以在模式资源、注释资源或内容流中的内联中定义。