Робота з полотнами (canvases) у XPS

Обрізка (clip) та перетворення (transform) полотен у файлах XPS за допомогою C++ API

 

У файлах XPS полотно (canvas) — це прямокутна область на сторінці, де можна малювати візуальний вміст, наприклад текст, зображення та фігури. Воно слугує контейнером для цих елементів і забезпечує структуру для їхньої організації та нашарування (layering). Полотна можна повторно використовувати в різних частинах документа або навіть у кількох документах, що забезпечує гнучкий спосіб структурування та організації вмісту в документі XPS. Ключові характеристики полотен у файлах XPS:

  • Полотна можуть бути вкладені (nested) в інші полотна, утворюючи ієрархічну структуру, яка дозволяє створювати складні макети (layouts) та групувати елементи.
  • Полотна можна перетворювати (transform) за допомогою різних операцій, таких як переміщення (translation), обертання (rotation) та масштабування (scaling). Це забезпечує гнучке позиціонування та зміну розміру вмісту.
  • Полотна можна обрізати (clip) до певних областей, обмежуючи видиму область їхнього вмісту. Це корисно для створення складних фігур та ефектів.
  • Полотна можуть містити різні візуальні елементи, включаючи текстові блоки (text runs), абзаци (paragraphs) та текстові поля (text boxes). Вони також можуть містити зображення, геометричні фігури та інші полотна.

Керування полотнами в документах — одна з функцій, що пропонується Aspose.Page для C++. Це рішення працює з різними мовами опису сторінок, зокрема XPS.

Щоб перетворити (transform) полотна файлу XPS, дотримуйтесь наведеного нижче посібника:

  1. Створіть файл XPS за допомогою класу XpsDocument.
  2. Створіть основне полотно, спільне для всіх елементів сторінки, за допомогою методу AddCanvas().
  3. Зробіть зміщення вліво та вгору в основному полотні за допомогою методу CreateMatrix().
  4. Створіть геометрію прямокутного шляху (rectangle path geometry) за допомогою методу CreatePathGeometry().
  5. Створіть заливку для прямокутників за допомогою класу XpsBrush.
  6. Для створення прямокутника на полотні 2 та його заповнення використовуйте клас XpsPath.
  7. Для переміщення (translate) полотна 3 з метою розташування нового прямокутника нижче попереднього використовуйте метод CreateMatrix().
  8. Для переміщення цього полотна на праву сторону сторінки використовуйте метод Translate().
  9. Для масштабування (scale) полотна 4 викличте метод Scale().
  10. Для обертання полотна 5 навколо точки на 45 градусів стане у нагоді метод RotateAround().
  11. Збережіть змінений документ XPS за допомогою методу XpsDocument.Save().
Перетворення полотна (canvas transformation)
Наступний фрагмент коду показує, як обрізати полотна файлів XPS у рамках рішення API Aspose.Page для C++.

Щоб обрізати (clip) полотна файлу XPS, дотримуйтесь наведеного нижче посібника:

  1. Створіть або відкрийте файл XPS за допомогою класу XpsDocument.
  2. Створіть основне полотно, спільне для всіх елементів сторінки, за допомогою методу AddCanvas().
  3. Зробіть зміщення вліво та вгору в основному полотні за допомогою методу CreateMatrix().
  4. Створіть геометрію прямокутного шляху за допомогою методу CreatePathGeometry().
  5. Створіть заливку для прямокутників за допомогою класу XpsBrush.
  6. Для додавання іншого полотна з обрізкою (clip) до основного полотна ще раз викличте метод AddCanvas().
  7. Створіть геометрію кола для обрізки за допомогою класу XpsPathGeometry.
  8. Для створення прямокутника на цьому полотні та його заповнення використовуйте клас XpsPath.
  9. Додайте інше полотно за допомогою методу AddCanvas(), потім створіть прямокутник на цьому полотні та обведіть його за допомогою класу XpsPathGeometry.
  10. Збережіть змінений документ XPS за допомогою методу XpsDocument.Save().
Обрізка полотна (canvas clipping)

XPS What is XPS File Format

XPS (XML Paper Specification) — альтернатива Microsoft до PDF. Заснований на XML/HTML, зберігає макет на різних платформах і не залежить від операційної системи.