【问题标题】:iTextSharp - Check PDF Document Properties - Content Copying, Content Copying For AccessibilityiTextSharp - 检查 PDF 文档属性 - 内容复制、内容复制的可访问性
【发布时间】:2017-04-14 11:02:03
【问题描述】:

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

寻找使用 iTextSharp 的解决方案

示例代码:

            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");
                }
            }

【问题讨论】:

  • 已纠正错字。

标签: c# itext pdf-reader


【解决方案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");
}

【讨论】:

  • 感谢您的澄清。当 PDF 文档没有设置安全方法时,是否有任何属性可以检查是否允许/不允许页面提取?
  • @user7121382 基本上有三种类型的限制: A 可以设置为加密过程的一部分;对于未加密的 PDF,这些显然不适用。 B 可以设置为签名过程的一部分或固有的那些;这些限制仅适用于允许或不允许对文档进行的更改。 C PDF 查看器程序强加的那些。如您的示例所示,“页面提取”是 C 的示例:您的示例既未加密也未签名(否则您会这么说,不是吗),因此只剩下 C...
  • @user7121382 给定查看器中允许的内容取决于查看器本身。例如。您似乎已经在 Adob​​e Acrobat Reader 中打开了该文档。在完整的 Adob​​e Acrobat 中,很可能一切都是允许的。本质上,必须注意的是,“文档限制摘要”实际上是“此查看器解释的文档限制摘要”,并且它的某些信息不能仅从 PDF 中获得......
猜你喜欢
  • 1970-01-01
  • 2011-11-13
  • 1970-01-01
  • 1970-01-01
  • 2018-07-29
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
相关资源
最近更新 更多