2

我正在使用 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();

我收到“错误的用户密码”异常。

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

4

2 回答 2

1

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

new PdfReader(path, hardPasswordByte);
于 2013-10-28T14:36:41.900 回答
1

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

于 2013-10-30T20:10:27.137 回答