本文转自:https://blog.csdn.net/u012632138/article/details/81559375
说明:
一个PDF应用程序(Foxit Reader或Adobe Reader)维护内部数据结构称为图形状态,它保存了当前图形控制参数。这些参数定义在全局框架,在全局框架内可执行图形操作符。例如:f(填充)操作符隐式调用当前颜色这个参数,S(描边)操作符调用了当前线框这个参数从图形状态。
PDF reference1.7.pdf 4.3
设备无关图形参数 Device-independent graphics state parameter
| 参数 | 类型 | 值 |
---|---|---|---|
1 | CTM | array | 当前变换矩阵,例如: a b c d e f cm |
2 | clipping path | (internal) | 当前剪切路径,初始值:CropBox |
3 | color space | Name or array | 当前颜色空间,分为 fill color & stroke color,初始值:DeviceGray |
4 | color | (various) | 当前颜色。初始值:black |
5 | text state | (various) | 有9个图形状态参数组成,用于文本显示。 |
6 | line width | number | 线宽。初始值:1.0 |
7 | line cap | integer | 线帽,线2端的样式。初始值:0 J(square butt cap) |
8 | line join | integer | 线连接的样式 。初始值:0 j (miter join) |
9 | miter limit | integer | 尖角限量。 初始值:10 M (11.5°) |
10 | dash pattern | array and number | 虚线。初始值:[] 0 d |
11 | blend mode | name or array | 当前混合模式。初始值:Normal |
12 | soft mask | dictionary or name | 指定阴影的形状或阴影不透明值用于透明图像模式。初始值:None |
13 | alpha constant | number | 透明度。初始值:1.0。 CA(for stroke) ca(fill) |
14 | alpha source | boolean | True: 由 SMask 指定透明模式 |
图形状态栈 Graphics State Stack
堆栈LIFO (last in, first out)
q: 保存当前状态。
Q: 恢复到q之前的状态。
q Q必须成对出现,可嵌套。
线宽 line width
操作符:w(小写)
定义:从路径的垂直距离在用户空间是小于或等于一半行宽的所有点。
一个非负的数字(单位:用户空间的单位)
CTM对线宽的影响。比如: 4 0 0 1 0 0 cm 如下效果:
0线宽:用设备的一个像素来表示它的宽度.无论如何放大,都是用一个像素来表示。
线帽 line cap
操作符:J(大写)
![]()
| Butt cap:平头(0 J) 画线时,路径的端点处用四方形画出,没有超出路径的端点。 Round cap:圆头(1 J) 一个半圆弧和一条与线宽长度相同的直径就画出一个圆头端点并填充。 Projecting square cap:突出的方头 (2 J),画线长出路径,以线宽的一半为宽度。是正方切除。 |
线连接样式 Line Join Style
操作符:j(小写)
![]()
| Miter Join(0 j):画2个线段的外边沿,延长直至相交成一个角度,如果2个线段相交角度太尖了,(根据尖角限量参数来限制"miter limit"将在下面介绍)用平角来代替。
|
尖角限量 Miter Limit
操作符:M(大写)
10 M ->11.5° | ![]()
|
![]()
| |
![]()
|
虚线模式 Line Dash Pattern
操作符:d(小写)
图形状态参数字典 Graphics State Parameter Dictionaries
- 某些图形状态参数只能使用操作符设置,例如:current color。
- 某些图形状态参数只能使用图形状态参数字典设置,例如:current halftone(半色调)。
- 某些图形状态参数2种方式都可以设置,例如line width可以用w操作符,也可在图形参数字典中使用LW选项设置。
| 关键字 | 类型 | 值 |
---|---|---|---|
1 | Type | name | (可选) ExtGState |
2 | LW | number | 线宽 line width |
3 | LC | integer | 线帽 line cap |
4 | LJ | integer | 线连接类型 line join |
5 | ML | number | 尖角限量 miter limit |
6 | D | array | [dashArray dashPhase] |