我正在使用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();
我收到“用户密码错误”例外。
有没有办法在不解密文档的情况下阅读元数据?
答案 0 :(得分:1)
您可以尝试为PdfReader
构造函数提供密码:
new PdfReader(path, hardPasswordByte);
答案 1 :(得分:1)
因此,正如mkl所说,PdfWriter.DO_NOT_ENCRYPT_METADATA只是设置了可以作为明文读取的MetaData。使用Java我可以简单地使用InputStream并读取文件,搜索元数据。