java - itext5 在上下文中签署图像

标签 java pdf itext sign

当我签署文档并在签名外观中使用图像时,我得到以下结果:

enter image description here

但是,我希望结果是这样的:

enter image description here

这是我的代码:

PdfSignatureAppearance appearance =  stamper.getSignatureAppearance();
appearance.setReason(info.getReason());
appearance.setLocation(info.getLocation());
appearance.setVisibleSignature(t.getRectangle(), 1, "SIGN");
appearance.setSignatureGraphic(image); 
appearance.setCertificationLevel(PdfSignatureAppearance.NOT_CERTIFIED); 
appearance.setRenderingMode(PdfSignatureAppearance.RenderingMode.GRAPHIC);
MakeSignature.signDetached(appearance, digest, signature,chain, null, null, null, 0, MakeSignature.CryptoStandard.CADES);

最佳答案

PDF 文档中数字签名的可视化表示是小部件注释小部件注释是一种特定类型的注释。

在 PDF 中,您拥有页面的实际内容。该内容存储在内容流中。页面在页面字典中定义。此页面字典中有一个 /Contents 条目引用多个内容流之一。这些内容流共同包含描述页面内容的语法。

注释不属于任何这些流。使用 /Annots 条目从页面字典中引用注释。在您的情况下,有一个 /Annots 条目引用带有您签名外观的小部件注释。

所有注释都呈现在实际页面内容之上。

长话短说:您有一个包含一些页面内容的 PDF,并且注释的外观添加在该页面内容的顶部。这个是正常的。这如 ISO-32000-1 中所述。您现在要求 PDF 查看器在页面内容下呈现注释。根据 PDF 规范,这是不可能的。

对你的问题的简短回答是:你在问一些无法完成的事情。最接近的解决方案是使图像透明(但这是另一个问题)。

关于java - itext5 在上下文中签署图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47032521/

相关文章:

java - 如何将过滤后的 jTable 的内容导出到 pdfpTable

java - 在 jTree 上创建右键单击弹出菜单

java - 如何使用带有 Maven 覆盖层的嵌入式 Jetty

cocoa - 使用 dataWithPDFInsideRect 保存数据 : just makes a black pdf

html - 我怎样才能制作一个 HTML 提交按钮来给您/生成 PDF?

.net - 第三方库可以即时将图像转换为 pdf 和 eps 格式?

java - 大纲的新标题未保存

java - 调试流畅风格代码时,如何找到哪个链式方法失败?

java - 自定义 RecordReader 初始化未调用

pdf - 如何在iTextSharp中绘制水平线?