了解FlateDecode编码的PDF流

时间:2012-11-25 17:52:01

标签: java pdf

我在 IText 编码了一个平面解码的PDF流,不幸的是我有一个干净的文字,但不能说明它的意思......在 PDF 32000 那里没有关于这个主题的文档......有没有关于此事的其他文档?

示例

q
0 0 1 rg
0 0 520 150 re
f
0 g
Q
q
BT
36 806 Td
ET
Q

2 个答案:

答案 0 :(得分:17)

ISO 32000-1:2008(这是您称为 PDF 32000 的文档,不是吗?)记录示例流的所有内容,特别是看看第8章< strong>图形和9 文字

q

8.4.2 图形状态堆栈 q运算符应将整个图形状态的副本推送到堆栈上。

0 0 1 rg

表74 颜色运算符 rg - 与RG相同,但用于非描边操作。

ibidem: RG - 将描边颜色空间设置为DeviceRGB(或DefaultRGB颜色空间;请参见8.6.5.6,“默认颜色空间”)并设置用于描边操作的颜色。每个操作数应为0.0(最小强度)和1.0(最大强度)之间的数字。

0 0 520 150 re

表59 路径构造运算符 re - 将矩形作为完整的子路径附加到当前路径,左下角(x,y)和维度wid和用户空间中的高度

f

表60 路径绘制运算符 f - 使用非零绕组编号规则填充路径以确定要填充的区域(请参见8.5.3.3.2,“非零绕组编号”规则”)。任何打开的子路径都应在填充之前隐式关闭。

0 g

表74 颜色运算符 g - 与G相同但用于非描边操作

ibidem: G - 将描边颜色空间设置为DeviceGray(或DefaultGray颜色空间;请参见8.6.5.6,“默认颜色空间”)并设置用于描边操作的灰度级。灰色应为0.0(黑色)和1.0(白色)之间的数字。

Q
q

8.4.2 图形状态堆栈 q运算符应将整个图形状态的副本压入堆栈。 Q运算符应通过从堆栈中弹出整个图形状态将其恢复到以前的值。

BT

9.4.1 常规(在9.4 文本对象中):文本对象以BT运算符开头,以ET运算符结束 < / p>

36 806 Td

表108 文本定位运算符 Td - 移动到下一行的开头,从当前行的开头偏移(tx,ty)。 tx和ty应表示以未缩放的文本空间单位表示的数字。更确切地说,该操作员应执行这些分配

ET

9.4.1 常规(在9.4 文本对象中):文本对象以BT运算符开头,以ET运算符结束 < / p>

Q

8.4.2 图形状态堆栈 Q运算符应通过从堆栈弹出整个图形状态将其恢复到以前的值。

如果您对某项或其他操作的详细信息有疑问,您可以在周围的明文中找到大量信息。如果在研究之后还有问题,请随时提出。

答案 1 :(得分:4)

所以基本上会这样:

1)从页面原点(左下角)绘制一个填充的100%蓝色矩形,宽度为520,高度为120个单位(约等于7.2 x 1.6英寸)

2)没有任何文本命令可以做任何事情。 “Td”运算符更改了文本矩阵,但由于页面上没有绘制文本,因此您将看不到任何内容。因为它嵌入在“q ... Q”对中,所以对页面上的任何内容都没有任何影响。