iTextSharp - 检查PDF文档属性 - 内容复制,内容复制以获取辅助功能

时间:2016-11-30 07:54:48

标签: c# itext pdf-reader

我试图检查要上传的PDF文档是否具有以下文档属性 - 内容复制&内容使用iTextSharp PDFReader复制允许/不允许的辅助功能。是否有任何属性可以验证此功能。我已粘贴了一个未返回预期结果的示例代码。

使用iTextSharp寻找解决方案

PDF Document Properties

示例代码:

            using (PdfReader r = new PdfReader(@"xxx\yyy.pdf"))
            {
                if (PdfEncryptor.IsScreenReadersAllowed((int)(r.Permissions)))
                {
                    Console.WriteLine("Content Accessibility Enabled");
                }

                if (PdfEncryptor.IsCopyAllowed((int)(r.Permissions)))
                {
                    Console.WriteLine("Copy Enabled");
                }

                if (PdfEncryptor.IsAssemblyAllowed((int)(r.Permissions)))
                {
                    Console.WriteLine("Document Assembly Enabled");
                }
            }

1 个答案:

答案 0 :(得分:1)

您检查的Permissions值仅针对加密的PDF进行初始化。另一方面,您在此处粘贴的示例对话框显示 No Security ,因此您的示例文档未加密。因此,Permissions值未设置为任何有意义的值。

作为加密过程的一部分,PDF可以获得的限制均不适用于未加密的PDF。因此,您可能希望将测试更新为

if (PdfEncryptor.IsScreenReadersAllowed((int)(r.Permissions)) || !r.IsEncrypted())
{
    Console.WriteLine("Content Accessibility Enabled");
}

if (PdfEncryptor.IsCopyAllowed((int)(r.Permissions)) || !r.IsEncrypted())
{
    Console.WriteLine("Copy Enabled");
}

if (PdfEncryptor.IsAssemblyAllowed((int)(r.Permissions)) || !r.IsEncrypted())
{
    Console.WriteLine("Document Assembly Enabled");
}