PDF学习十:图形状态

本文转自: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
7line capinteger线帽,线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 指定透明模式
false:由 CA 或 ca 指定透明值

图形状态栈 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"将在下面介绍)用平角来代替。

 

 


Round join(1 j):圆角

 


Bevel join(2 j): 平角

尖角限量 Miter Limit

操作符:M(大写)

10 M ->11.5°
2 M ->60°
1.414 M ->90°

 

 

 

 

 

虚线模式 Line Dash Pattern 

操作符:d(小写)

 

图形状态参数字典 Graphics State Parameter Dictionaries

  1. 某些图形状态参数只能使用操作符设置,例如:current color。
  2. 某些图形状态参数只能使用图形状态参数字典设置,例如:current halftone(半色调)。
  3. 某些图形状态参数2种方式都可以设置,例如line width可以用w操作符,也可在图形参数字典中使用LW选项设置。

 

关键字

类型

1

Type

name

(可选) ExtGState

2LWnumber线宽 line width
3LCinteger线帽 line cap
4LJinteger线连接类型 line join
5MLnumber

尖角限量 miter limit

6

D

array[dashArray dashPhase]
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页