pdf调用java_如何使用pdfbox在Java中签署pdf

我正在尝试使用pdfbox库签署pdf.

我现在卡住了,真的需要帮助.

这是我的代码:

private static void signPdf(PDDocument document) throws Exception

{

PDSignature sig = new PDSignature();

sig.setFilter(COSName.ADOBE_PPKLITE);

sig.setSubFilter(COSName.ADBE_PKCS7_DETACHED);

sig.setByteRange(new int[] {'a','a','a','a'});

sig.setContents(new byte[]{(byte) 23, (byte) 23, (byte) 23, (byte) 23});

SignatureOptions options = new SignatureOptions();

document.addSignature(sig, new SignatureInterface() {

public byte[] sign(InputStream content)

throws SignatureException, IOException {

//this should be made MD5 checksum?

return new byte[]{(byte) 'a', (byte) 'a', (byte) 'a', (byte) 'a'};

}

}, options);

}

然后我保存我的pdf,但是:

1)我注意到从未调用sign方法

2)我应该在哪里附上certyficate?在签名方法?

PDF格式:

/Type /Sig

/Filter /Adobe.PPKLite

/SubFilter /adbe.pkcs7.sha1

/Contents <0000000000. a lot of zeros..000>

/ByteRange [0 1000000000 1000000000 1000000000]

我认为我错过了一些东西,但文档没有说明如何签署文件.

Tahnks提前JC.

@Ed

以下是我保存pdf的方法:

public static void saveFile(COSDocument doc, String out)

throws IOException, COSVisitorException {

java.io.OutputStream os = null;

COSWriter writer = null;

try {

os = new java.io.FileOutputStream(out);

writer = new COSWriter(os);

writer.write(doc);

} finally {

if (os != null) {

os.close();

}

if (writer != null) {

writer.close();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值