JAVA 给PDF添加数字签名

2025-10-05 21:25:48

1、首先,获取jar包。

Step 1: 下载控件包之后解压,打开“Project Structure”界面。(以下是两种在IDEA中快速打开Project Structure界面的方式:①file->Project Structure ②Shift+Ctrl+Alt+S快捷键进入‘Project Structure’。可选其中任意一种)

Step 2:按以下操作步骤进行导入。① 选择“Modules”—“Dependencies”,添加外置jar包;② 进入"Attach File or Directories"界面选择jar文件路径,然后点击“OK”;③ 勾选jar路径选项,点击“Apply/OK”;④ 导入完成。如下图:

JAVA 给PDF添加数字签名

JAVA 给PDF添加数字签名

1、import com.spire.pdf.PdfDocument;

import com.spire.pdf.security.*;

import com.spire.pdf.graphics.*;

import java.awt.*;

import java.awt.geom.*;

public class digitalSignature {

    public static void main(String[] args) {

        //定义输入、输出文件和数字签名文件

        String inputFile = "data/Doc2.pdf";

        String outputFile = "output/digitalSignature_result.pdf";

        String pfxPath = "data/test.pfx";

        //加载PDF文件

        PdfDocument doc = new PdfDocument();

        doc.loadFromFile(inputFile);

        //加载证书

        PdfCertificate cert = new PdfCertificate(pfxPath, "123456");

        PdfSignature signature = new PdfSignature(doc, doc.getPages().get(0), cert, "signature0");

        Rectangle2D rect = new Rectangle2D.Float();

        rect.setFrame(new Point2D.Float(90, 550), new Dimension(270, 90));

        signature.setBounds(rect);

        //设置图形显示模式,如果不设置图形显示模式,则应用默认的图形显示模式

        signature.setGraphicMode(GraphicMode.Sign_Image_And_Sign_Detail);

        signature.setNameLabel("Signer:");

        signature.setName("Gary");

        signature.setContactInfoLabel("ContactInfo:");

        signature.setContactInfo("136558284211");

        signature.setDateLabel("Date:");

        signature.setDate(new java.util.Date());

        signature.setLocationInfoLabel("Location:");

        signature.setLocationInfo("Chengdu");

        signature.setReasonLabel("Reason: ");

        signature.setReason("The certificate of this document");

        signature.setDistinguishedNameLabel("DN: ");

        signature.setDistinguishedName(signature.getCertificate().get_IssuerName().getName());

        signature.setSignImageSource(PdfImage.fromFile("data/logo.png"));

        signature.setDocumentPermissions(PdfCertificationFlags.Forbid_Changes);

        signature.setCertificated(true);

        //保存文件

        doc.saveToFile(outputFile);

        doc.close();

    }

}

2、运行效果:

JAVA 给PDF添加数字签名

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢