首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDFBox:区分透明文本和非透明文本

PDFBox:区分透明文本和非透明文本
EN

Stack Overflow用户
提问于 2021-07-13 11:22:25
回答 1查看 119关注 0票数 0

我有一个任务,在那里,我必须提取文本,是背后的图像,并已从图像本身OCR编辑。这一案文是透明的。问题是,有一个图像,它的背后有文字,不是OCR编辑的,它只是正常的文本,它是不透明的。如何区分所需(透明)和不需要(不透明)文本?

这是一个具有代表性的pdf文件:https://easyupload.io/rbo333图像OCR文本应该在第2页、第3页、第12页上提取,而文本也在第4页上提取。在第4页,图像后面没有OCR文本,但是图像下面有规则文本。我需要过滤掉它,因为我只需要OCR文本。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-20 06:43:24

所以图片在他们前面或者后面都是透明的文字。我认为这意味着它们没有颜色,但是@mkl说它们可能有颜色,但它们是空的符号。pdf规范还指出,即使它们是透明的,它们也可以有颜色。要做到真正的透明,字符就需要渲染,而不是抚摸,也不是抚摸颜色。

RenderingMode枚举中有一个用于此目的的Fontbox,它的既不表示某物是否透明,也不表示它是否透明。我可以在这个answer的帮助下提取它。

解决方案代码如下所示。

代码语言:javascript
复制
@Override
protected void processTextPosition(TextPosition character) {
    characterRenderingModes.put(character, getGraphicsState().getTextState().getRenderingMode());
    super.processTextPosition(character);
}

这是PDFTextStripper类的重写方法,它遍历页面/s上的每个字符并获取它们的RenderingModes。在此之后,当需要时,我根据需要检查的字符将RenderingModes从地图中提取出来。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68361447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档