【问题标题】:iTextSharp check the annotation typeiTextSharp 检查注释类型
【发布时间】:2019-01-11 16:17:05
【问题描述】:

我正在尝试从 PDF 中提取注释,目前我可以使用此代码读取所有注释。

    Dim reader As PdfReader = New PdfReader("MyPDF.pdf")

    For i As Integer = 1 To reader.NumberOfPages
        Dim array As PdfArray = reader.GetPageN(i).GetAsArray(PdfName.ANNOTS)
        If array Is Nothing Then Continue For

        For j As Integer = 0 To array.Size - 1
            Dim annot As PdfDictionary = array.GetAsDict(j)
            Dim name As PdfString = annot.GetAsString(PdfName.T)
            Dim text As PdfString = annot.GetAsString(PdfName.CONTENTS)
        Next
    Next

现在,我想检查注释的类型,以便在示例中划掉对我来说不那么重要的注释。形状;

  • 便签
  • 文本突出显示
  • 文字下划线
  • 文本删除线
  • 箭头
  • ....

但是我找不到关于这件事的任何样本。我尝试搜索文档,但我再次无法理解。

我该如何进行?

【问题讨论】:

    标签: pdf annotations itext


    【解决方案1】:

    我尝试搜索文档,但我再次无法理解

    当您使用 itext 的非常低级别的 API 层访问注释时,您非常接近 pdf 内容本身。因此,在这种情况下要查找的文档是 pdf 规范 ISO 32000。

    Adobe 在其网页上发布了旧版本 ISO 32000-1:

    https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf

    在第 12.5 节“注释”中,您会找到很多关于注释的信息。特别是注释字典描述的注释类型作为 Subtype 的值给出。指定注释类型的子类型值可以在关注相关注释类型的子部分中找到。

    【讨论】:

    • 感谢您的链接!我会深入研究它。但我也很好奇,是否有更好的记录方法来实现这一点。重要的是它必须是免费的。
    • 很难找到比规范更好的文档(即使规范在某些方面不清楚......)
    • 确实没有比规范更好(或其他?)的文档了。
    猜你喜欢
    • 2017-09-24
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 1970-01-01
    • 2013-09-13
    • 2019-07-11
    • 1970-01-01
    • 2023-04-01
    相关资源
    最近更新 更多