读取加密的pdf元数据而不解密文件

时间:2013-10-28 14:27:59

标签: java itext

我正在使用iText加密PDF文件:

stamp.setEncryption(hardPasswordByte, 
                    hardPasswordByte,
                    PdfWriter.ALLOW_PRINTING, 
                    PdfWriter.ENCRYPTION_AES_128 | PdfWriter.DO_NOT_ENCRYPT_METADATA);

注意我正在指定PdfWriter.DO_NOT_ENCRYPT_METADATA

但是当我尝试只读这样的文档元数据时(不解密文档):

PdfReader ReadInputPDF = new PdfReader(path);
byte Document_MetaData[] = ReadInputPDF.getMetadata();

我收到“用户密码错误”例外。

有没有办法在不解密文档的情况下阅读元数据?

2 个答案:

答案 0 :(得分:1)

您可以尝试为PdfReader构造函数提供密码:

new PdfReader(path, hardPasswordByte);

答案 1 :(得分:1)

因此,正如mkl所说,PdfWriter.DO_NOT_ENCRYPT_METADATA只是设置了可以作为明文读取的MetaData。使用Java我可以简单地使用InputStream并读取文件,搜索元数据。