1

我必须创建一个函数,告诉我上传的 PDF 文件是仅加密、仅时间戳、无或两者兼有。到目前为止,我使用的是 PDFBox 2.0.5,只有知道时间戳和无文件才能成功。

这是当前代码:

try{
    InputStream fis = new ByteArrayInputStream(file.getBytes());
    PDDocument d = PDDodument.load(fis); //encrypted file will go to InvalidPasswordException error
    //***file not encrypted***
    List<PDSignature> a = d.getSignatureDictionaries();
    List<PDSignatureField> b = d.getSignatureFields();
    if(a.size()==0 && b.size()==0){
        //***file not timestamped***
    }else{
        //***file timestamped***
    }
} catch(InvalidPasswordException e){
    //***file encrypted***
    //***is file timestamped?***
    //***is file not timestamped?***
} catch(IOException e){
}

我的问题是,如何知道加密的 pdf 文件上是否有任何时间戳(作为签名)?

注意:我找到了几个 PDFBox 使用示例,但很少找到 PDFBox 最新版本实现示例

更新说明:文件是上传的 MultipartFile 对象,很难获得其路径,避免将其复制或传输到另一种对象类型

4

0 回答 0