【问题标题】:Programmatically Retrieve a PDF's security properties?以编程方式检索 PDF 的安全属性?
【发布时间】:2013-09-13 14:25:36
【问题描述】:

是否可以获取预先存在的 PDF 文件并检索安全属性? 即这些:

我一直在阅读ITextSharp 的文档,但我还没有找到任何关于打开 PDF 对象然后找到安全属性的信息。这甚至可以通过 c# 实现吗?

更新

我一直在玩PDFSharp

并发现在加载新的 PDFDocument 时,我可以通过以下方式访问属性:

PdfDocument doc = new PdfDocument("[pdf file here]");
Console.WriteLine(doc.SecuritySettings.PermitAssembleDocument);

但是,无论该参数的实际设置如何(在我的情况下,Pdf 不允许文档汇编)SecuritySettings.PermitAssembleDocument 仍将返回 true。

我是在不正确地阅读这篇文章,不正确地处理它,还是只是因为我可以操纵所有这些字段而返回 true?

【问题讨论】:

    标签: c# pdf pdfsharp


    【解决方案1】:

    看起来Docotic.Pdf Library 可以做到这一点。如果您查看here,您会发现您可以通过其 Permissions.Flags 属性访问权限和标志。我假设这将使您能够访问您正在寻找的内容。

    【讨论】:

    • 我下载了评估许可证并一直在玩Docotic。但是,我看到的问题与PDFSharp 相同。无论 PDF 上的实际设置如何,它都会将所有内容显示为允许。
    • 那太糟糕了。既然您说两个库都返回了不正确的值,您是否尝试过使用另一个 PDF?可能是您正在使用的 PDF 文件吗?两个库没有返回正确的值,这听起来很奇怪。
    • 正如我们所说,我正在尝试另一个 PDF,尽管我同意这一切都是可疑的。我上面附加的屏幕截图来自 Adob​​e Acrobat X。如果我在 Adob​​e Viewer 中查看完全相同的 PDF 文件,它会显示 3 个不同的属性被标记为不允许。这似乎是正确的,因为当我尝试提取内容并转换文件时,它会给出我之前在处理不允许的权限时看到的错误。
    • 它与OwnerPassword / UserPassword 属性有关吗?我正在阅读一些文档,但有可能我没有正确实现某些东西?
    • 这是个好问题。如果 PDF 受密码保护,则库可能正在返回默认值,因为如果不使用密码打开 PDF,它就无法访问实际值。只是猜测......
    【解决方案2】:

    这是 C# 中的开源 PDF 库列表,希望 this 有所帮助

    【讨论】:

      猜你喜欢
      • 2013-05-19
      • 2020-06-29
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 2014-11-04
      相关资源
      最近更新 更多