Работа с холстами (canvases) в XPS
Обрезка (clip) и преобразование (transform) холстов в XPS-файлах с помощью C++ API
В XPS-файлах холст (canvas) — это прямоугольная область на странице, где можно рисовать визуальное содержимое, такое как текст, изображения и фигуры. Он служит контейнером для этих элементов и обеспечивает структуру для их организации и наслоения (layering). Холсты можно повторно использовать в разных частях документа или даже в нескольких документах, что обеспечивает гибкий способ структурирования и организации содержимого в XPS-документе. Ключевые характеристики холстов в XPS-файлах:
- Холсты могут быть вложены (nested) в другие холсты, создавая иерархическую структуру, которая допускает сложные макеты (layouts) и группировку элементов.
- Холсты можно преобразовывать с помощью различных операций, таких как перемещение (translation), поворот (rotation) и масштабирование (scaling). Это обеспечивает гибкое позиционирование и изменение размера содержимого.
- Холсты можно обрезать (clip) до определённых областей, ограничивая видимую область их содержимого. Это полезно для создания сложных фигур и эффектов.
- Холсты могут содержать различные визуальные элементы, в том числе текстовые блоки (text runs), абзацы (paragraphs) и текстовые поля (text boxes). Они также могут содержать изображения, геометрические фигуры и другие холсты.
Управление холстами в документах — одна из функций, предлагаемых Aspose.Page для C++. Это решение работает с различными языками описания страниц, в частности с XPS.
Для преобразования (transform) холстов XPS-файла следуйте приведённому ниже руководству:
- Создайте XPS-файл с помощью класса XpsDocument.
- Создайте основной холст, общий для всех элементов страницы, с помощью метода AddCanvas().
- Сделайте смещения влево и вверх в основном холсте с помощью метода CreateMatrix().
- Создайте геометрию прямоугольного пути (rectangle path geometry) с помощью метода CreatePathGeometry().
- Создайте заливку для прямоугольников с помощью класса XpsBrush.
- Для создания прямоугольника на холсте 2 и его заливки используйте класс XpsPath.
- Для перемещения (translate) холста 3 с целью позиционирования нового прямоугольника под предыдущим используйте метод CreateMatrix().
- Для перемещения этого холста на правую сторону страницы используйте метод Translate().
- Для масштабирования (scale) холста 4 вызовите метод Scale().
- Для поворота холста 5 вокруг точки на 45 градусов удобно использовать метод RotateAround().
- Сохраните изменённый XPS-документ с помощью метода XpsDocument.Save().
Преобразование холста (canvas transformation)
Для обрезки (clip) холстов XPS-файла следуйте приведённому ниже руководству:
- Создайте или откройте XPS-файл с помощью класса XpsDocument.
- Создайте основной холст, общий для всех элементов страницы, с помощью метода AddCanvas().
- Сделайте смещения влево и вверх в основном холсте с помощью метода CreateMatrix().
- Создайте геометрию прямоугольного пути с помощью метода CreatePathGeometry().
- Создайте заливку для прямоугольников с помощью класса XpsBrush.
- Для добавления ещё одного холста с обрезкой (clip) к основному холсту ещё раз вызовите метод AddCanvas().
- Создайте геометрию окружности для обрезки с помощью класса XpsPathGeometry.
- Для создания прямоугольника на этом холсте и его заливки используйте класс XpsPath.
- Добавьте ещё один холст с помощью метода AddCanvas(), затем создайте прямоугольник на этом холсте и обведите его с помощью класса XpsPathGeometry.
- Сохраните изменённый XPS-документ с помощью метода XpsDocument.Save().
Обрезка холста (canvas clipping)
XPS Формат файла XPS
XPS (XML Paper Specification) — альтернативный Microsoft формат PDF, основанный на XML/HTML, сохраняет макет независимо от платформы.