如何从pdf文档中的文本框注释中获取值

时间:2013-04-05 09:15:06

标签: c# pdf itextsharp

我有一个pdf文档,里面是两种类型的评论列表: 1.矩形 2.文本框

enter image description here

我想用c#和itextsharp从文本框中获取值。

1 个答案:

答案 0 :(得分:5)

您所指的文本框和矩形称为注释。注释被定义为字典,并且每页都列出了它们。

换句话说:您需要创建一个PdfReader实例并从每个页面获取ANNOTS

PdfReader reader = new PdfReader("your.pdf");
for (int i = 1; i <= reader.NumberOfPages; i++) {
    PdfArray array = reader.GetPageN(i).GetAsArray(PdfName.ANNOTS);
    if (array == null) continue;
    for (int j = 0; j < array.Size; j++) {
        PdfDictionary annot = array.GetAsDict(j);
        PdfString text = annot.GetAsString(PdfName.CONTENTS);
        ...
    }
}

在上面的代码示例中,我有一个名为PdfDictionary的{​​{1}},我可以从中提取内容。您可能也对其他一些条目感兴趣(例如注释的名称,如果有的话)。如果annot条目不是您要查找的内容,请检查annot对象中可用的所有密钥。

用您想要对文本做的任何事情替换点。 Contents有不同的方法可以揭示其内容。

免责声明:我是iText的原始开发人员(我一直认为人们已经知道这一点,但我曾经因为没有添加此免责声明而被投票支持)。