Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 签署PDF文档并以字节或流的形式获取PDF_Java_Javascript_Pdf_Applet_Itext - Fatal编程技术网

Java 签署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

我正在用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文件的路径。 当我尝试将操作系统设置为空时,它没有签名

我的问题是如何在不保存输出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如何将签名文件返回给您?太好了!非常感谢。太好了!谢谢。