我有一些棘手的PDF文件包含白色文本。为了不在文本剥离器中呈现它,我重写了ProcessTextPosition方法:
private static final int COLOR_WHITE = 16777215;
@Override
protected void processTextPosition(TextPosition text) {
PDGraphicsState gs = getGraphicsState();
PDColor nonStrokingColor = gs.getNonStrokingColor();
try {
if (nonStrokingColor.toRGB() != COLOR_WHITE) {
super.processTextPosition(text);
}
} catch (IOException e) {
logger.error("Could not convert stroking color to RGB", e);
}
}
然而,有时我仍然需要渲染这样的白色文本 - 当它被放置在彩色背景上时。据我所知,这通常是一些填充矩形,但我不知道如何在ProcessTextPosition中处理它。有没有办法做到这一点? 文件示例:example。 这里"收入"在绿色矩形上是白色的,也是" Huron帐户"是蓝色矩形上的白色文字。