检查要归档的pdf内容以查找pdf受密码保护

时间:2018-09-24 16:32:29

标签: c# pdf itext aspose

我试图发现PDF是否已加密。在上传我们的应用程序生成的文档时,我遇到了问题。对于其他PDF来说效果很好。

我发现发生这种情况是因为我的PDF文件包含正确的加密元数据,即使我的文件没有密码保护。

trailer
<</Size 49
/Root 46 0 R
/Encrypt 47 0 R
/ID [<544779292784d1082d90221fd2118106><544779292784d1082d90221fd2118106>]
/Info 48 0 R
>>
startxref
218840
%%EOF


<<
/Filter/Standard
/R 3 /V 2 /Length 128
/O<0a9c59beafa2ba093c4bace402aae8e14eacb78a9ab178187f5922be0f044f63>
/U<a1b38ac6f6fe4d59b099045b71b52d7328bf4e5e4e758a4164004e56fffa0108>
/P -1852/EncryptMetadata true
>>

有人可以帮助我找到我的PDF文件,但没有密码保护时,该文件是否只是将元数据加密为真。

1 个答案:

答案 0 :(得分:0)

您可以使用Aspose.PDF for .NET API区分加密的和受密码保护的PDF文件。 PdfFileInfo类公开了一些布尔属性,包括IsEncrypted HasEditPasswordHasOpenPassword,可以对其进行检查以达到您的要求。以下是供您参考的代码段:

        // Load source PDF file
        PdfFileInfo info = new PdfFileInfo();
        info.BindPdf(dataDir + "Test.pdf");
        if (info.IsEncrypted)
        {
            // Determine if the source PDF is encrypted
            Console.WriteLine("File is encrypted");
        }
        if (info.HasEditPassword)
        {
            // Determine if the source PDF has edit password
            Console.WriteLine("File has edit password");
        }
        if (info.HasOpenPassword)
        {
            // Determine if the source PDF has open password
            Console.WriteLine("File has open password");
        }

我们希望这会有所帮助。如果您需要任何进一步的帮助,请随时告诉我们。

PS :我和Aspose一起担任开发人员推广人员。