我有一個代碼可以成功地將可見簽名塊添加到“普通”PDF 中。
<...>
PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0');
PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
appearance.setVisibleSignature(new Rectangle(c[0], c[1], c[2], c[3]), 1, field);
createVisigbleSignature(stamper, appearance, signFont, signTxt, img);
<...>
public static void createVisigbleSignature(PdfStamper stamper, PdfSignatureAppearance appearance, Font font, String text, byte[] img) throws Exception {
PdfTemplate layer2 = appearance.getLayer(2);
float size = -1;
final float MARGIN = 2;
Rectangle dataRect = new Rectangle(MARGIN, MARGIN, appearance.getRect().getWidth() - MARGIN, appearance.getRect().getHeight() - MARGIN);
Rectangle sr = new Rectangle(dataRect.getWidth(), dataRect.getHeight());
size = ColumnText.fitText(font, text, sr, 12, appearance.getRunDirection());
ColumnText ct = new ColumnText(layer2);
ct.setRunDirection(appearance.getRunDirection());
ct.setSimpleColumn(new Phrase(text, font), dataRect.getLeft(), dataRect.getBottom(), dataRect.getRight(), dataRect.getTop(), size, Element.ALIGN_LEFT);
ct.go();
//image
Image image = Image.getInstance(img);
layer2.addImage(image, appearance.getRect().getWidth(), 0, 0, appearance.getRect().getHeight(), 0, 0);
}
但是,如果我嘗試簽署僅包含影像的 PDF(基本上它是匯出為 pdf 的影像),我的可見簽名塊將不再可見。Acrobat Reader 可以看到簽名容器,但用戶無法看到或單擊“可見”塊。
這可能是什么原因以及如何確保簽名資訊無論如何都是可見的?
這里的例子:

因此,要解決此問題,只需使用new Rectangle(c[0], c[1], c[2], c[3])螢屏上簽名小部件的坐標即可。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/323942.html
