使用 iText 从 Foxit Reader 文本框评论中提取数据

Extract data from Foxit Reader textbox comments using iText

假设您有一个 pdf 文档,其中包含 no-OCR 文本:

"I am Sam, I am 28 years old and tomorrow is april/18/2018."

是否可以在 "Sam"、“28”和 "april/18/2018" 正下方插入表单控件,以便用户可以在表单控件中准确地键入那些信息,以及来自窗体控件可以被编程代码读取?

iTextSharp 可以做到吗?或者更简单的工具?

编辑 1:下面我将尝试使我的目标更加明确(对不起我的英语)。

在我的工作中,我必须从没有 OCR 的旧扫描文档中提取大量信息。对它们应用 OCR 不是一种选择。我想做的是:(a) 我打开 pdf 文档并开始阅读。 (b) 每次我发现我必须使用的信息,比如数据出生时,我想在它附近 insert/apply/put/create/set 一个文本框(例如下面),然后在文本框中输入该日期出生. (c) 完成插入我想要的所有文本框(姓名、年龄、出生日期、收入等)并在其中输入从 pdf 读取的信息后,我希望能够处理我的编程代码中的文本框,例如 C#。

使用 iText,可以提取 Foxit Reader pdf Callout 功能中插入的注释。正如 mkl 在问题的评论中回答的那样,那些 Foxit Reader 评论是 "contained in the Contents entries of the annotation dictionaries."

使用 iText 7,您可以像这样提取文本框评论:

try (   PdfReader pdfReader = new PdfReader("HelloFOXIT.pdf");
        PdfDocument pdfDocument = new PdfDocument(pdfReader)   ) {
    for (int pageNr = 1; pageNr <= pdfDocument.getNumberOfPages(); pageNr++) {
        System.out.printf("\n\nPage %d\n\n", pageNr);
        PdfPage page = pdfDocument.getPage(pageNr);
        for (PdfAnnotation pdfAnnotation : page.getAnnotations()) {
            System.out.printf("- %s\n", pdfAnnotation.getContents());
        }
    }
}

输出:

Page 1

- 28
- 18/04/2018
- SAM