【发布时间】:2015-05-19 22:14:20
【问题描述】:
我有一个示例 pdf(附件),它包括一个高度几乎相同的文本对象和一个矩形对象。然后我使用 itextrup 检查了 pdf 的内容,如下所示:
1 1 1 RG
1 1 1 rg
0.12 0 0 0.12 16 50 cm
q
0 0 m
2926 0 l
2926 5759 l
0 5759 l
0 0 l
W
n
Q
1 1 1 RG
1 1 1 rg
q
0 0 m
2926 0 l
2926 5759 l
0 5759 l
0 0 l
W
n
/F1 205.252 Tf
BT
0 0 0 RG
0 0 0 rg
/DeviceGray CS
/OC /oc1 BDC
0 -1 1 0 1648 5330 Tm
0 Tc
100 Tz
(Hello World) Tj
ET
Q
q
0 0 m
2926 0 l
2926 5759 l
0 5759 l
0 0 l
W
n
0 0 0 RG
0 0 0 rg
/DeviceGray CS
6 w
1 j
1 J
1649 5324 m
1649 4277 l
1800 4277 l
1800 5324 l
1649 5324 l
S
EMC
Q
显然用户空间矩阵由[0.12 0 0 0.12 16 50]决定,矩形的高度为(1800-1649)*0.12*1=18.12,字体大小我使用205.252*0.12= 24.63024。由于这两个值不接近,我的问题是如何获取字体的高度/大小?
【问题讨论】:
-
您不是在寻找字体大小,而是在寻找 glyph 大小——众所周知,这很难获得。 字体的大小与它所包含的字符的大小无关。
-
您在此处的链接指向 Microsoft 的 Live OneDrive 以及在 Word 的在线版本中打开的内容。您能否将实际的 PDF 文件发布到某个地方?
-
更新了示例pdf的链接onedrive.live.com/?cid=af5d216ec9b3d680
-
PDF 中文本中的字形不会延伸到基线以下,但字体大小的特定部分是为该基线以下的字形部分保留的。因此,框高度远小于字体大小。
标签: parsing pdf fonts itextsharp itext