在 XPS 中使用画布 (canvases)

使用 C++ API 裁剪 (clip) 和变换 (transform) XPS 文件中的画布

 

在 XPS 文件中,画布 (canvas) 是页面上的矩形区域,其中可以绘制文本、图像和形状等视觉内容。它充当这些元素的容器,并提供用于组织和分层 (layering) 它们的框架。画布可以在文档的不同部分甚至多个文档中重复使用,从而提供了一种在 XPS 文档中灵活构建和组织内容的方法。XPS 文件中画布的主要特性:

  • 画布可以嵌套 (nested) 在其他画布中,从而创建允许复杂布局 (layouts) 和元素分组的层次结构。
  • 画布可以使用各种操作进行变换 (transform),例如平移 (translation)、旋转 (rotation) 和缩放 (scaling)。这可以灵活定位内容并调整内容大小。
  • 画布可以裁剪 (clip) 到特定区域,限制其内容的可见区域。这对于创建复杂的形状和效果很有用。
  • 画布可以包含不同的视觉元素,包括文本运行 (text runs)、段落 (paragraphs) 和文本框 (text boxes)。它们还可以包含图像、几何形状和其他画布。

管理文档中的画布是 Aspose.Page for C++ 提供的功能之一。该解决方案可与不同的页面描述语言配合使用,尤其是 XPS。

要变换 (transform) XPS 文件的画布,请按照以下指南操作:

  1. 使用 XpsDocument 类创建 XPS 文件。
  2. 使用 AddCanvas() 方法创建所有页面元素通用的主画布。
  3. 使用 CreateMatrix() 方法在主画布中创建左偏移和上偏移。
  4. 使用 CreatePathGeometry() 方法创建矩形路径几何图形 (rectangle path geometry)。
  5. 使用 XpsBrush 类为矩形创建填充 (fill)。
  6. 要在画布 2 中创建矩形并填充它,请使用 XpsPath 类。
  7. 要平移画布 3 以将新矩形定位在前一个矩形下方,请使用 CreateMatrix() 方法。
  8. 要将此画布平移到页面右侧,请使用 Translate() 方法。
  9. 要缩放 (scale) 画布 4,请调用 Scale() 方法。
  10. 要将画布 5 围绕某点旋转 (rotate) 45 度;RotateAround() 方法非常有用。
  11. 使用 XpsDocument.Save() 方法保存更改后的 XPS 文档。
画布变换 (canvas transformation)
以下代码片段展示了如何在 Aspose.Page for C++ API 解决方案中裁剪 XPS 文件的画布。

要裁剪 (clip) XPS 文件的画布,请按照以下指南操作:

  1. 使用 XpsDocument 类创建或打开 XPS 文件。
  2. 使用 AddCanvas() 方法创建所有页面元素通用的主画布。
  3. 使用 CreateMatrix() 方法在主画布中创建左偏移和上偏移。
  4. 使用 CreatePathGeometry() 方法创建矩形路径几何图形。
  5. 使用 XpsBrush 类为矩形创建填充。
  6. 要向主画布添加带有剪辑 (clip) 的另一个画布,请再次调用 AddCanvas() 方法。
  7. 使用 XpsPathGeometry 类为剪辑创建圆形几何图形。
  8. 要在此画布中创建矩形并填充,请使用 XpsPath 类。
  9. 使用 AddCanvas() 方法添加另一个画布,然后在此画布中创建一个矩形,并使用 XpsPathGeometry 类描绘其轮廓 (stroke)。
  10. 使用 XpsDocument.Save() 方法保存更改后的 XPS 文档。
画布裁剪 (canvas clipping)

XPS 什么是XPS文件格式

XPS(XML Paper Specification)是 Microsoft 的 PDF 替代方案,基于 XML/HTML,跨平台保持布局一致,且不依赖操作系统。