gpt4 book ai didi

java - iText 删除签名(扁平化过程)但保留其视觉表示

转载 作者:行者123 更新时间:2023-11-30 06:44:20 40 4
gpt4 key购买 nike

我使用以下链接中的函数删除了 pdf 中的所有签名。

iText Remove signatures

我得到的是一个没有签名的 pdf 文件,但在 pdf 内容中包含了它们的视觉表示。是否有一个功能也可以删除视觉表示?

我需要这个,因为我想计算原始 pdf 的哈希值。谢谢!

最佳答案

您声称:我使用以下链接中的此函数删除 PDF 中的所有签名,但该示例并不是要删除签名,而是旨在扁平化签名(该示例称为FlattenSignatures)。

扁平化意味着签名字段删除(签名消失了),但相应的小部件注释(视觉表示为你称之为)被保留。

如果要删除签名字段及其小部件注释,则需要删除该字段:

PdfReader reader = new PdfReader(src); 
AcroFields acroFields = reader.getAcroFields();
acroFields.removeField("my_signature_name");
PdfStamper stamper = new PdfStamper(reader, dest);
stamper.close();
reader.close();

但是,您声称​​我需要这个,因为我想计算原始 pdf 的哈希值。这是完全错误的。删除签名不会生成原始 PDF!

如果您想验证签名,您应该按照签名字典中的定义从 PDF 中提取字节范围。请参阅Verifying digital signatures in PDF documents 。请注意,您之前曾问过这个问题,并且已经得到了充分的回答:iText verify integrity of a pdf in java .

除非在附加模式中添加签名(如果我是您,我不会假设),您将无法获得原始 PDF。您知道签名是否是在附加模式下添加的吗?如果是这样,请将此信息添加到您的问题中。

关于java - iText 删除签名(扁平化过程)但保留其视觉表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43918188/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com