Image 如何使用itext 7迭代pdf文件中的所有图像?
我想用itext 7调整pdf文件中的图像大小。但是当我迭代所有XObject时,无法获得背景图像。 我的实现代码如下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
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()函数。图像也可以在模式资源、注释资源或内容流中的内联中定义。