C# 提取PDF注释

C# 提取PDF注释,c#,annotations,itext,extract,pdfbox,C#,Annotations,Itext,Extract,Pdfbox,我需要使用C#提取并读取PDF的注释 我可以使用PDFBox和itextsharp提取文件,没有任何问题,但我需要阅读注释文本或下划线或彩色(突出显示的行) 有什么想法吗?您需要了解页面的实际内容(页面内容流中使用PDF语法描述的内容)与添加到页面的注释之间存在差异(页面词典的/Annots条目中注释词典中描述的内容) 到目前为止,您正在提取注释词典的内容,但您还希望从使用注释的/Rect条目标识位置的内容流中提取内容。您需要解析页面的内容流才能做到这一点 请转到并阅读常见问题解答,具体如下:

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

我可以使用PDFBox和itextsharp提取文件,没有任何问题,但我需要阅读注释文本或下划线或彩色(突出显示的行)


有什么想法吗?

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

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

请转到并阅读常见问题解答,具体如下:

假设
reader
是您的
PdfReader
实例,
rect
是定义要提取的文本位置的
矩形,以及
page
对应的页码,那么您可以创建
RenderFilter
并使用
LocationTextExtractionStrategy
,如下所示:

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

PDFBox的答案是相同的re PDF内部代码。当然,代码是不同的。要从注释区域提取,请参阅源代码下载中的PrintURLs示例。@Tilmahausher您有PrintURLs的C#代码吗?没有,只有java。但是C#和java非常相似。对于某些注释类型,实际上四点更简洁如果是标记注释,则AP外观流可能仍会标记文本的不同子集。但没有人希望尝试通过这些外观确定文本范围…@Bruno Lowagie我只需要获取pdf文件中突出显示的句子,该文件通过注释添加