为了查找添加的图像文件并在下次阅读PDF时将其替换为另一个图像文件,我想使用Itext将图像文件添加到现有的PDF中,并为其声明唯一的名称。 我的代码:如何使用Itext将图像文件添加到现有PDF中,并为其声明唯一的名称?
final PdfName key = new PdfName("MY_SIGN_KEY");
final PdfName val = new PdfName("MY_SIGN_VAL");
Image signImage=Image.getInstance(signPngFile.getAbsolutePath());
signImage.setAlignment(1);
signImage.scaleAbsolute(newWidth, newHeight);
signImage.setAbsolutePosition(200,200);
PdfContentByte over = stamper.getOverContent(1);
PdfImage stream = new PdfImage(signImage, "", null);
stream.put(key,val);// a unique name for it.(设置唯一标识符)
//PdfIndirectObject ref=over.getPdfWriter().addToBody(stream);
//signImage.setDirectReference(ref.getIndirectReference());
over.addImage(signImage);
您正在使用我书中的代码来解释如何满足您的要求。你的问题是什么?看来你已经知道答案了。 –
对不起,我没有描述清楚,上面的代码可以将图像添加到PDF。但名称与图像无关。 如果代码未被注释: PdfIndirectObject ref = over。 GetPdfWriter(。)addToBody(stream); SignImage。 SetDirectReference(ref。GetIndirectReference()); 可以将图像添加到PDF中。名字是正确的关联,但整个图片是黑色的。 – user3648781
所以你试图创建一个像这样的图像的PDF:[SpecialId](http://developers.itextpdf.com/examples/itext-action-second-edition/chapter-16#622-specialid.java)。然后你想用这样的ID找到那个图像:[ResizeImage](http://developers.itextpdf.com/examples/itext-action-second-edition/chapter-16#621-resizeimage.java)。问题是,当你使用'ref'时,你会得到一个黑色的图像。也许你应该重新解释你的问题,以便专注于这个问题。 –