爲了查找添加的圖像文件並在下次閱讀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'時,你會得到一個黑色的圖像。也許你應該重新解釋你的問題,以便專注於這個問題。 –