PDFBox 2.0:来自 PDFTextStripper 的不可见文本

PDFBox 2.0 : Invisible text from PDFTextStripper

文件示例是here

我想我再次需要 mkl 的帮助(附件中有一些 PDFTextStripper 提取的隐藏 () 字符。现在我不明白是什么让它不可见(例如,参见第 6 列值 - 所有值都在括号中:

Publix Liquors 1,600 2.5 1/1/2014 12/31/2018 ($24,000.00) ($4,032.00) ($28,032.00) BayCare Health Systems 3,200 5 7/30/2004 7/31/2018 ($51,200.00) ($9,648.00) ($60,848.00) 直到选择期 8/11/2018

.......

您能否至少指出为什么在这种情况下它们被隐藏? 提前致谢!

在这种情况下,您处理的是实际透明度。

隐藏的括号是由这样的指令块创建的

q
/Alpha3 gs
0 0 0 rg
BT
0 Tr
/Font0 14.299999 Tf
1.0 0 0 -1.0 537.66486 195.42578 Tm
0 0 Td
<037F>
Tj
ET
Q 

资源中的扩展图形状态Alpha3声明为

14 0 obj
<<
  /CA 0
  /ca 0
>>
endobj 

因此,/Alpha3 gs 将描边和填充的不透明度都设置为 0,即使用填充或描边绘制的任何内容都是完全透明的。

在 PDFBox PDFTextStripper 中,可以在 processTextPosition 中从当前图形状态 (getGraphicsState) 中检索这些值作为属性 getAlphaConstantgetNonStrokeAlphaConstant