我知道桌面文字提取不是每个人的一杯茶。但在阅读有关表格的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
我现在不明白,如何从哪一点绘制表格线。
答案 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点的影响最有可能产生略微加粗的线而不是矩形的效果。