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

问题描述

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

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)
    }

有什么问题吗?如何使用itext 7迭代pdf文件中的所有图像?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)