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

时间:2018-05-23 11:41:36

标签: java pdf pdfbox

文件示例为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之前无需更改租金

..............

你能否至少指出为什么他们在这种情况下隐藏 ? 提前谢谢!

1 个答案:

答案 0 :(得分:2)

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

隐藏括号是由像

这样的指令块创建的
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

相关问题