Работа с графическими состояниями (graphics states) в PS

Обрезка (clip) и преобразование (transform) графических состояний PS-файлов с помощью C++ API

 

В PostScript графическое состояние (graphic state) — это набор атрибутов, определяющих способ отрисовки графики на странице и позволяющих создавать сложные и разнообразные графические изображения с помощью единого набора команд. Сохраняя и восстанавливая графические состояния, можно избежать избыточных операций. Кроме того, можно определять многократно используемые графические стили и применять их к различным частям документа. Графическое состояние включает такие настройки, как:

  • Толщина линий (ширина линии / line width).
  • Форма концов линий (круглая, квадратная или плоская / butt).
  • Форма стыков между линиями (угловая / miter, круглая / round или скошенная / bevel).
  • Цвет линий и заливок (RGB, CMYK или оттенки серого).
  • Шрифт, используемый для текста, и его размер.
  • Матрица, используемая для преобразования координат (масштабирование, вращение, сдвиг).

Управление графическими состояниями в PS-документах (аналог canvas в XPS) является одной из основных функций Aspose.Page для C++.

Для преобразования (transform) графических состояний PS-файла следуйте следующему руководству:

  1. Создайте PS-файл с помощью класса PsDocument .
  2. Создайте графический путь в виде прямоугольника.
  3. Сохраните текущее графическое состояние, создайте новое и установите его как текущее с помощью WriteGraphicsSave() Метода.
  4. Переместите текущее графическое состояние с помощью Translate() Метода.
  5. Установите цвет заливки в текущем графическом состоянии с помощью SetPaint() Метода.
  6. Заполните графический путь с помощью Fill() метода.
  7. Восстановите предыдущее графическое состояние с помощью WriteGraphicsRestore Метода.
  8. Повторите шаги 3–7 для добавления дополнительных графических состояний с другими преобразованиями, используя Методы Scale() , Rotate() , Shear() и Transform() .
  9. Закройте текущую страницу с помощью ClosePage() метода.
  10. Сохраните созданный PS-документ с помощью PsDocument.Save() Метода.
Преобразование графических состояний (Transform graphics states) в PS

Для добавления Клипов (Clips) к графическому состоянию PS-файла следуйте следующему руководству:

  1. Создайте PS-файл с помощью класса PsDocument .
  2. Создайте графический путь в виде прямоугольника.
  3. Сохраните текущее графическое состояние, создайте новое и установите его как текущее с помощью WriteGraphicsSave() Метода.
  4. Переместите текущее графическое состояние с помощью Translate() Метода.
  5. Создайте графический путь в виде окружности.
  6. Добавьте круговую обрезку (clip) к текущему графическому состоянию с помощью Clip() Метода.
  7. Установите цвет заливки в текущем графическом состоянии с помощью SetPaint() Метода.
  8. Заполните прямоугольный графический путь с помощью Fill() Метода.
  9. Восстановите предыдущее графическое состояние с помощью WriteGraphicsRestore() Метода.
  10. Переместите текущее графическое состояние с помощью Translate() Метода.
  11. Создайте объект System.Drawing.Pen.
  12. Установите обводку (stroke) в текущем графическом состоянии с помощью SetStroke() Метода.
  13. Нарисуйте прямоугольный графический путь поверх обрезанного прямоугольника с помощью Draw() Метода.
  14. Закройте текущую страницу с помощью ClosePage() Метода.
  15. Сохраните созданный PS-документ с помощью PsDocument.Save() Метода.
Добавление Клипа к графическому состоянию PS

PS Формат файла PS

PS (PostScript) — язык описания страниц, объединяющий текст и графику в один файл. Широко поддерживается графическими редакторами и принтерами, содержит инструкции для рендеринга страницы.