【发布时间】:2014-01-26 04:15:36
【问题描述】:
我正在使用 Java 中的 Itext 签署 pdf 文档。
它工作正常,但我可以在不保存文件的情况下签署 pdf 文档吗?
这是部分代码:
FileOutputStream os = (FileOutputStream) readWriteFiles(2);
System.out.println("FileOutputStream created");
if (os == null) {
System.out.println("Operation canceled by the user. He chose to not overwrite existing file.");
return;
}
PdfStamper stamper = PdfStamper.createSignature(reader, os, '\0', null, true);
// PdfStamper stamper = PdfStamper.createSignature;
System.out.println("stamper created");
/* Creating the appearance */
PdfSignatureAppearance appearance = stamper.getSignatureAppearance();
appearance.setReason(reason);
appearance.setLocation(location);
/* Creating the signature */
ExternalDigest digest = new BouncyCastleDigest();
ExternalSignature signature =
new PrivateKeySignature(pk, digestAlgorithm, provider);
System.out.println(signature.toString() + "\n\n\n" + appearance.toString());
MakeSignature.signDetached(appearance, digest, signature, chain,
null, null, null, 0, subfilter);
OS 包含输出 pdf 文件的路径。 当我尝试将操作系统设置为 null 时,它没有签名。
我的问题是如何在不保存输出 pdf 文件的情况下签署 pdf 文件?
以及如何将 PDF 作为字节或流获取以便在 javascript 中使用它(它是一个小程序)?
【问题讨论】:
-
当我尝试将操作系统设置为 null 时,它没有签名 - 好吧,如果你既不提供输出流也不提供临时文件位置(另一个
null在您的通话中),您希望 iText 如何将签名文件返回给您?
标签: java javascript pdf applet itext