Java 签署PDF文档并以字节或流的形式获取PDF
我正在用Java中的Itext编写签名pdf文档 它可以正常工作,但是我可以在不保存文件的情况下签署pdf文档吗 以下是部分代码:Java 签署PDF文档并以字节或流的形式获取PDF,java,javascript,pdf,applet,itext,Java,Javascript,Pdf,Applet,Itext,我正在用Java中的Itext编写签名pdf文档 它可以正常工作,但是我可以在不保存文件的情况下签署pdf文档吗 以下是部分代码: FileOutputStream os = (FileOutputStream) readWriteFiles(2); System.out.println("FileOutputStream created"); if (os == null) { System.out.println("Operatio
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文件的路径。
当我尝试将操作系统设置为空时,它没有签名
我的问题是如何在不保存输出pdf文件的情况下签署pdf
我如何才能将PDF作为字节或流来使用javascript(这是一个小程序)?根据文档 公共静态PdfStamper createSignature(PDF阅读器, 输出流, 字符(pdfVersion) 抛出一个异常, IOException 您可以提供任何您想要的输出流,所以我建议您这样做
ByteArrayOutputStream output = new ByteArrayOutputStream();
PdfStamper stamper = PdfStamper.createSignature(reader, output, '\0', null, true);
然后,您可以根据文档以字节数组的形式检索输出内容() 公共静态PdfStamper createSignature(PDF阅读器, 输出流, 字符(pdfVersion) 抛出一个异常, IOException 您可以提供任何您想要的输出流,所以我建议您这样做
ByteArrayOutputStream output = new ByteArrayOutputStream();
PdfStamper stamper = PdfStamper.createSignature(reader, output, '\0', null, true);
然后,您可以将输出内容检索为字节数组()当我尝试将操作系统设置为null时,它没有签名-好吧,如果您既不提供输出流也不提供临时文件位置(调用中的另一个
null
),您希望iText如何将签名文件返回给您?当我尝试将操作系统设置为null时,它没有签名-好吧,如果您既不提供输出流也不提供临时文件位置(调用中的另一个null
),您希望iText如何将签名文件返回给您?太好了!非常感谢。太好了!谢谢。