提取PDF注释

时间:2017-01-01 20:54:45

标签: c# annotations itext extract pdfbox

我需要使用C#提取和读取PDF的注释。

我可以通过同时使用PDFBox和itextsharp来解压缩文件,但我需要读取注释文本或带下划线或彩色(突出显示的行)。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您需要了解页面的实际内容(使用页面的内容流中的PDF语法描述的内容)与添加到的页面之间存在差异页面(页面词典的/Annots条目中的注释词典中描述的内容)。

到目前为止,您正在提取注释词典的内容,但您还希望使用注释的/Rect条目从标识位置的内容流中提取内容。您需要解析页面的内容流才能执行此操作。

请转到official iText web site并阅读常见问题解答,更具体地说:How to read text from a specific position?

假设readerPdfReader个实例,rect是定义要提取的文本位置的Rectangle,并page对应页码,然后您可以创建RenderFilter并使用LocationTextExtractionStrategy,如下所示:

RenderFilter[] filter = {new RegionTextRenderFilter(rect)};
ITextExtractionStrategy strategy =
    new FilteredTextRenderListener(
        new LocationTextExtractionStrategy(), filter);
String text = PdfTextExtractor.GetTextFromPage(reader, page, strategy));