使用 pdfbox 1.8.8 的数字可见标志

Digital visible Sign with pdfbox 1.8.8

我正在使用 pdfbox 1.8.8 在 PDF 上生成可见标志。 这是我的代码。我无法看到登录 pdf。 我得到的只是一个没有内容的矩形框。

PDDocument document = PDDocument.load(temp);
        document.getCurrentAccessPermission().setCanModify(false);
        PDSignature signature = new PDSignature();
        signature.setFilter(PDSignature.FILTER_ADOBE_PPKLITE);
        signature.setSubFilter(PDSignature.SUBFILTER_ADBE_PKCS7_DETACHED);
        signature.setName("XyZ");
        signature.setLocation("XYZ");
        signature.setReason("test");
        signature.setSignDate(Calendar.getInstance());
        
        InputStream image = new FileInputStream("download.png");
        
        PDVisibleSignDesigner signatureDesigner = new PDVisibleSignDesigner(
                document, image, document.getNumberOfPages());
        signatureDesigner.xAxis(0).yAxis(0).zoom(-80).signatureFieldName("signature");

        PDVisibleSigProperties signatureProperties = new PDVisibleSigProperties();
        signatureProperties.signerName("Xyz").signerLocation("Xyz")
                .signatureReason("Test").preferredSize(100).page(1)                    
       .visualSignEnabled(true).setPdVisibleSignature(signatureDesigner).buildSignature();

        SignatureOptions options = new SignatureOptions();
        options.setVisualSignature(signatureProperties);

        document.addSignature(signature, (SignatureInterface) this, options);

        /* Sign */
        document.saveIncremental(tempIn, tempOut);

实际结果:

预期结果:我想要这个包含图像和签名字段内容的块。

1.8.* 中的示例仅支持 JPEG 文件。

我推荐使用2.0.* PDFBox版本,有两个数字签名示例(其中一个是文本),它们更灵活,提供更多功能。