我需要使用C#提取和读取PDF的注释。
我可以通过同时使用PDFBox和itextsharp来解压缩文件,但我需要读取注释文本或带下划线或彩色(突出显示的行)。
有什么想法吗?
答案 0 :(得分:1)
您需要了解页面的实际内容(使用页面的内容流中的PDF语法描述的内容)与添加到的页面之间存在差异页面(页面词典的/Annots
条目中的注释词典中描述的内容)。
到目前为止,您正在提取注释词典的内容,但您还希望使用注释的/Rect
条目从标识位置的内容流中提取内容。您需要解析页面的内容流才能执行此操作。
请转到official iText web site并阅读常见问题解答,更具体地说:How to read text from a specific position?
假设reader
是PdfReader
个实例,rect
是定义要提取的文本位置的Rectangle
,并page
对应页码,然后您可以创建RenderFilter
并使用LocationTextExtractionStrategy
,如下所示:
RenderFilter[] filter = {new RegionTextRenderFilter(rect)};
ITextExtractionStrategy strategy =
new FilteredTextRenderListener(
new LocationTextExtractionStrategy(), filter);
String text = PdfTextExtractor.GetTextFromPage(reader, page, strategy));