小编sda*_*lby的帖子

PDF使用C#读取高亮度文本(突出显示注释)

我使用iTextSharp编写了一个提取工具,从PDF文档中提取注释信息.对于高亮注释,我只获得页面上突出显示的区域的矩形.

我的目标是提取已突出显示的文本.为此,我使用`PdfTextExtractor'.

Rectangle rect = new Rectangle(
    pdfArray.GetAsNumber(0).FloatValue, 
    pdfArray.GetAsNumber(1).FloatValue,
    pdfArray.GetAsNumber(2).FloatValue,
    pdfArray.GetAsNumber(3).FloatValue);

RenderFilter[] filter = { new RegionTextRenderFilter(rect) };
ITextExtractionStrategy strategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), filter);
string textInsideRect = PdfTextExtractor.GetTextFromPage(pdfReader, pageNo, strategy);
return textInsideRect;
Run Code Online (Sandbox Code Playgroud)

返回的结果PdfTextExtractor并不完全正确.例如,它返回"即将消除纸张追逐",即使只突出显示"消除".

有趣的是,包含突出显示的"消除"的TJ的整个文本是"将要消除纸张追逐"(TJ是将文本写入页面的PDF指令).

我很想听到有关此问题的任何意见 - 也包括不涉及iTextSharp的解决方案.

c# pdf itext itextsharp

4
推荐指数
1
解决办法
4043
查看次数

标签 统计

c# ×1

itext ×1

itextsharp ×1

pdf ×1