PDF表格文本提取

时间:2015-09-07 18:17:22

标签: pdf text-extraction coordinate-transformation

我知道桌面文字提取不是每个人的一杯茶。但在阅读有关表格的PDF Stream数据时,有些事情我不明白。

表格的PDF代码流是:

q                                    % Graphic State Starting Point

0 292.5 595.3 442.8 re               % Rectangle x y Width Height
W*                                   % Clipping Even Odd Rule
n                                    % End without Filling

0 0 0 rg                             % Color of Stroke
161 735 m                            % Move to New Path
160.8 734.7 l  89.3 734.7 l 89 735 l  88.8 735.3 l 161.3 735.3 l
161 735 l                            % straight line
h                                    % Close the Current Path
f*                                   % Fill Path with Even Odd Rule
Q

下划线是:

q                                 % Graphic State Starting Point
1 0 0 1 451.5 759.5 cm            % Current matrix
0.5 w                             % Width of Stroke
0 0 0 RG                          % color
0 -0.8 m                          % Move to New Path
72 -0.8 l                         % Straight Line
S                                 % Stroke Line
Q                                 % End of Graphic State

在下划线中m修改cm并将其设置为451.5 759.5并从当前点绘制直线,即451.5到72点,即493.5,小于0.8到cm ,即759.5

我现在不明白,如何从哪一点绘制表格线。

1 个答案:

答案 0 :(得分:2)

考虑线条绘制部分,其中m是移至运算符而l是line-to:

               % command   coordinates
               % =====================              
161 735 m      % Move-to   a(161, 735)
160.8 734.7 l  % line-to   b(161, 735 -.3)
89.3  734.7 l  % line-to   c(90,  735 -.3)
89    735   l  % line-to   d(90,  735)
88.8  735.3 l  % line-to   e(90,  735 +.3)
161.3 735.3 l  % line to   f(161, 735 +.3)
161   735   l  % line to   g(161, 735)
h              % close-path
f              % fill

x在160和89左右有一些奇怪的微小变化,它们太小而无法在视觉上注册 - 渲染怪癖?)。

[在非常高的分辨率线下将有箭头

<============ ...   =======>

除此之外,它正在绘制一个非常薄的长方框,其中包含(89, 734,7)(161, 734.7)(161, 735.3)(89, 735.3)。 y轴上+/-)。3点的影响最有可能产生略微加粗的线而不是矩形的效果。