如何理解 pdf 表单标志?

How to understand pdf forms flags?

我使用 pdfbox 阅读 pdf 结构,但我无法从流中找到一些数据:

1 g
0 0 18 18 re
f
0.5 0.5 17 17 re
s
q
1 1 16 16 re
W
n
0 g
BT
/ZaDb 14.532 Tf
2.853 4.081 Td
13.9943 TL
(4) Tj
ET
Q

是checkbox的流信息,但是那个字母是什么意思? 任何人都可以向我解释,或者如果你可以与我分享我可以在哪里阅读它会更好吗?

1 g                 --- select DeviceGray WHITE as non-stroking color
0 0 18 18 re        --- define a 18×18 rectangular path, lower left at 0,0
f                   --- fill the path with the non-stroking color
0.5 0.5 17 17 re    --- define a 17×17 rectangular path, lower left at 0.5,0.5
s                   --- stroke the path with the stroking color
q                   --- save graphics state
1 1 16 16 re        --- define a 16×16 rectangular path, lower left at 1,1
W                   --- intersect the current clip path with the just defined path
n                   --- don't draw the path
0 g                 --- select DeviceGray BLACK as non-stroking color
BT                  --- begin text object
/ZaDb 14.532 Tf     --- select font with name ZaDb at size 14.532
2.853 4.081 Td      --- move text insertion point by 2.853,4.081
13.9943 TL          --- set leading to 13.9943
(4) Tj              --- draw the string with one character with character code 0x34 (what you display as "4" is the byte 0x34)
ET                  --- end text object
Q                   --- restore graphics state

哪个字符的字符代码为0x34,取决于ZaDb是如何定义的。你应该可以在你关注的窗体XObject的字体资源中找到它的定义。

不过,ZaDb 很有可能是采用 ZapfDingbats 编码的 ZapfDingbats 字体,请参阅 ISO 32000-2 附件 D.6。在这种情况下,字符代码 0x34 对应于 ✔.

换句话说,您的窗体 XObject 绘制了一个黑边内白的正方形,然后在该正方形内绘制了一个黑色勾号。