You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PDFBox生成的PDF签名详情中展示Creator信息

要在PDF签名详情中正常显示Creator信息,你需要给PDSignature对象手动添加PDF规范定义的应用属性字典,修改后的代码如下:

import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
// 你原有其他import保持不变

private void signDetached(SignatureInterface signature, PDDocument document, OutputStream output) throws IOException {
    PDSignature pdSignature = new PDSignature();
    pdSignature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
    pdSignature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
    pdSignature.setName("jvmfy");
    pdSignature.setReason("Learn how to sign pdf with jvmfy.com!");

    // 新增代码段:设置Creator信息
    COSDictionary propBuildDict = new COSDictionary();
    COSDictionary appDict = new COSDictionary();
    // 此处替换为你想要展示的Creator名称
    appDict.setString(COSName.NAME, "jvmfy签名工具");
    propBuildDict.setItem(COSName.APP, appDict);
    pdSignature.getCOSObject().setItem(COSName.PROP_BUILD, propBuildDict);

    // 签名日期,有效签名必填
    pdSignature.setSignDate(Calendar.getInstance());

    // 注册签名字典和签名接口
    document.addSignature(pdSignature, signature);

    // 增量保存仅用于签名场景,使用普通save方法可能破坏原文档结构
    document.saveIncremental(output);
}

原问题效果参考:

效果示意图

实现说明:

PDF签名详情的Creator字段对应规范中签名属性字典Prop_Build下的App子字典的Name属性,PDFBox没有封装对应的设置方法,所以需要直接操作底层COS对象设置对应属性即可替换原来的「Not available」提示。

内容的提问来源于stack exchange,提问作者Dinh Chu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:57:02