在Java中使用itext 7.2.2删除数字签名,可以按照以下步骤进行:
1.导入相关依赖库:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-core</artifactId>
<version>7.2.2</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext7-sign</artifactId>
<version>7.2.2</version>
</dependency>
2.使用itext 7.2.2读取需要删除数字签名的PDF文件,并通过PdfDocument类获取AccessPermissions对象:
File inputFile = new File("input.pdf");
PdfDocument pdfDoc= new PdfDocument(new PdfReader(inputFile.getAbsolutePath()));
AccessPermissions ap = new AccessPermissions();
ap.setReadOnly();
3.使用AccessPermissions对象移除签名权限:
ap.removeUsageRights();
4.保存文件并关闭PdfDocument对象:
pdfDoc.close();
完整的示例代码如下:
import java.io.File;
import java.io.IOException;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.signatures.AccessPermissions;
public class RemoveDigitalSignature {
public static void main(String[] args) throws IOException {
File inputFile = new File("input.pdf");
PdfDocument pdfDoc = new PdfDocument(new PdfReader(inputFile.getAbsolutePath()));
AccessPermissions ap = new AccessPermissions();
ap.setReadOnly();
ap.removeUsageRights();
pdfDoc.close();
注意:这段代码只能用于删除PDF文件中的数字签名,并不能用于修改或伪造数字签名。