在PDF中恢复图形状态后,是否可以绘制路径的笔划?

时间:2012-11-29 09:31:15

标签: pdf

我正在绘制PDF格式的行,我希望以1:1以外的比例缩放。

问题是我得到的笔画看起来像是用书法笔画的。

是否有可能以某种方式在PDF中调整路径大小,恢复图形状态,然后绘制上一个路径的笔划。

这就是我在PDF中获得书法线条的方法:

5 w               // width of stroke
q                 // saves the current graphics state 
0 1 0 0.2 0 0 cm  // transformation matrix scaling with height reduced to 20%
0 10 m            // Start of line
10 10 l           // line to
20 100 l
30 100 l
40 10 l
S                 // draws stroke
Q                 // Restores graphics state

在HTML5画布中,可以在恢复图形状态后绘制笔划,以便通过等宽线绘制路径。

http://www.html5canvastutorials.com/advanced/html5-canvas-ovals/

在Q中放入S后,Q无效。

有没有办法在PDF中获得相同的结果,只有线路径被缩放,而不是笔画本身?

1 个答案:

答案 0 :(得分:3)

请参阅PDF规范ISO 32000-1:2008的图9 - 图形对象 - 第113页。它说明了一旦开始构建路径,唯一允许的运算符就是路径构造,路径剪切和路径绘制。 Q 是一个特殊的图形状态运算符,只允许在路径绘制运算符之后,例如,你的 S

这也在图表正下方的例子中说明:

  

路径构建运算符 m re 表示开头   一个路径对象。在路径对象内部,附加路径构造   允许运算符,剪切路径运算符 W 和    W * ,但不是一般的图形状态运算符,例如 w J 。   路径绘制运算符(例如 S f )结束路径对象   并返回页面描述级别。

因此回应“是否有某种方法可以在PDF中获得相同的结果,只有线路径得到缩放,而不是笔划本身?”:不,你必须明确选择较小的笔划宽度来补偿不同的比例由转换矩阵引入。

Page 113 of ISO 32000-1:2008 showing Figure 9 - Graphics Objects