在 PS 中使用图形状态 (graphics states)

使用 C++ API 裁剪 (clip) 和转换 (transform) PS 文件的图形状态

 

在 PostScript 中,图形状态 (graphic state) 是属性的集合,用于定义如何在页面上绘制图形,并允许您使用单个命令集创建复杂多样的图形。通过保存和恢复图形状态,可以避免冗余操作。您还可以定义可重用的图形样式并将其应用于文档的不同部分。图形状态包括以下设置:

  • 线条的粗细(线宽 / line width)。
  • 线条端点的形状(圆形、方形或平齐 / butt)。
  • 线条之间连接处的形状(斜角 / miter、圆形 / round 或斜切 / bevel)。
  • 线条和填充的颜色(RGB、CMYK 或灰度)。
  • 用于文本的字体及其大小。
  • 用于变换坐标的矩阵(缩放、旋转、平移)。

管理 PS 文档中的图形状态(相当于 XPS 中的 canvas)是 Aspose.Page for C++ 提供的主要功能之一。

要转换 (transform) PS 文件的图形状态,请按照以下指南操作:

  1. 使用 PsDocument 类 创建 PS 文件。
  2. 创建矩形图形路径。
  3. 保存当前图形状态,创建新图形状态,并使用 WriteGraphicsSave() 方法将其设置为当前状态。
  4. 使用 Translate() 方法平移当前图形状态。
  5. 使用 SetPaint() 方法在当前图形状态中设置颜料。
  6. 使用 Fill() 方法填充图形路径。
  7. 使用 WriteGraphicsRestore 方法恢复之前的图形状态。
  8. 重复步骤 3-7,使用 Scale()Rotate()Shear()Transform() 方法添加更多具有其他变换的图形状态。
  9. 使用 ClosePage() 方法关闭当前页面。
  10. 使用 PsDocument.Save() 方法保存创建的 PS 文档。
转换 PS 的图形状态 (Transform graphics states)

要向 PS 文件的图形状态添加裁剪 (Clips),请按照以下指南操作:

  1. 使用 PsDocument 类 创建 PS 文件。
  2. 创建矩形图形路径。
  3. 保存当前图形状态,创建新图形状态,并使用 WriteGraphicsSave() 方法将其设置为当前状态。
  4. 使用 Translate() 方法平移当前图形状态。
  5. 创建圆形图形路径。
  6. 使用 Clip() 方法向当前图形状态添加圆形裁剪 (clip)。
  7. 使用 SetPaint() 方法在当前图形状态中设置颜料。
  8. 使用 Fill() 方法填充矩形图形路径。
  9. 使用 WriteGraphicsRestore() 方法恢复之前的图形状态。
  10. 使用 Translate() 方法平移当前图形状态。
  11. 创建一个 System.Drawing.Pen 对象。
  12. 使用 SetStroke() 方法在当前图形状态中设置描边 (stroke)。
  13. 使用 Draw() 方法在裁剪后的矩形上方绘制矩形图形路径。
  14. 使用 ClosePage() 方法关闭当前页面。
  15. 使用 PsDocument.Save() 方法保存创建的 PS 文档。
向 PS 的图形状态添加 Clip

PS What is PS File Format

PS(PostScript)是一种页面描述语言,将文本和图形合并在同一文件中。被多数图像编辑软件和打印机支持,包含打印机渲染页面的指令。