【发布时间】:2015-03-22 20:51:51
【问题描述】:
我正在尝试提取一些 pdf 文件的标题以对其进行排序。不幸的是,每个字母之间都有一个空格,单词之间的空格比同一个单词的字母之间的空格大。 这是我的提取方法:
PdfReader reader = new PdfReader(filename);
Rectangle rect = new Rectangle(0, 0, 1000, 1000);
RenderFilter regionFilter = new RegionTextRenderFilter(rect);
FontRenderFilter fontFilter = new FontRenderFilter();
FilteredTextRenderListener strategy = new FilteredTextRenderListener(
new LocationTextExtractionStrategy(), regionFilter, fontFilter);
string result = PdfTextExtractor.GetTextFromPage(reader, 1, strategy);
reader.Close();
有没有办法过滤掉较小的空间?
【问题讨论】:
-
这些空格是对应于实际绘制的空间字形还是由插入点移动产生的?如果您不知道,请提供一个示例 PDF 来说明您的问题。
-
很遗憾,我无法向您展示示例 pdf,因为我无权这样做。你能告诉我如何确定它们是哪种空间吗?
-
你能告诉我如何确定它们是哪种类型的空间 - 使用 PDF 浏览器(例如 RUPS)并检查相应的页面或 xobject 流。需要对PDF specification 有一些透彻的了解。
-
This answer 和 this one 处理一个可能相关的问题:在他们的情况下,字符之间的间隙太小而无法识别为空格。如果您的空间来自插入点移动,那么这些答案可能会启发您。
-
据我所知,有实际绘制的空间。
标签: itextsharp spaces