Работа с фигурами в PostScript | .NET
Добавить фигуры в документ PS
Добавить прямоугольник в PS
Чтобы добавить прямоугольник в PsDocument с помощью библиотеки Aspose.Page для .NET, нам необходимо выполнить следующие шаги:
- Создайте выходной поток для полученного PS-файла.
- Создайте объект PsSaveOptions с параметрами по умолчанию.
- Создайте одностраничный PsDocument с уже созданным потоком вывода и сохраните параметры.
- Создайте прямоугольник System.Drawing.Drawing2D.GraphicsPath на основе прямоугольника.
- Установите отрисовку текущего графического состояния PsDocument.
- Заполните прямоугольник.
- Закройте страницу.
- Сохраните документ.
Если нам нужно обвести (обвести) прямоугольник, то первые 4 и последние 2 шага будут одинаковыми, но точки 5 и 6 будут:
Установите обводку в соответствии с текущим графическим состоянием PsDocument.
Обведите (обведите) прямоугольник.
1// Add Rectangle to PS document.
2
3string outputFileName = "AddRectangle_outPS.ps";
4
5//Create save options with A4 size
6PsSaveOptions options = new PsSaveOptions();
7
8// Create new 1-paged PS Document
9PsDocument document = new PsDocument(OutputDir + outputFileName, options, false);
10
11//Create graphics path from the first rectangle
12GraphicsPath path = new GraphicsPath();
13path.AddRectangle(new RectangleF(250, 100, 150, 100));
14//Set paint
15document.SetPaint(new SolidBrush(Color.Orange));
16//Fill the rectangle
17document.Fill(path);
18
19//Create graphics path from the second rectangle
20path = new GraphicsPath();
21path.AddRectangle(new RectangleF(250, 300, 150, 100));
22//Set stroke
23document.SetStroke(new Pen(new SolidBrush(Color.Red), 3));
24//Stroke (outline) the rectangle
25document.Draw(path);
26
27//Close current page
28document.ClosePage();
29
30//Save the document
31document.Save();Для Linux, MacOS и других операционных систем, отличных от Windows, мы предлагаем использовать наш пакет Nuget Aspose.Page.Drawing. Он использует серверную часть Aspose.Drawing вместо системной библиотеки System.Drawing.
Поэтому импортируйте пространство имен Aspose.Page.Drawing вместо System.Drawing. В приведенном выше и последующих фрагментах кода вместо System.Drawing.Rectangle будет использоваться Aspose.Page.Drawing.Rectangle, вместо System.Drawing.Drawing2D.GraphicsPath будет использоваться Aspose.Page.Drawing.Drawing2D.GraphicsPath и т. д. . Наши примеры кода на GitHub содержат все необходимые замены.
См. работу с фигурами в документах PS в Java.
Результат запуска этого кода выглядит так:

Добавить Эллипс в PS
Чтобы добавить эллипс в PsDocument также необходимо выполнить 8 шагов:
- Создайте выходной поток для полученного PS-файла.
- Создайте объект PsSaveOptions с параметрами по умолчанию.
- Создайте одностраничный PsDocument с уже созданным потоком вывода и сохраните параметры.
- Создайте эллипс System.Drawing.Drawing2D.GraphicsPath из прямоугольника.
- Установите для краски текущее графическое состояние PsDocument.
- Заполните контур эллипса.
- Закройте страницу.
- Сохраните документ.
Если нам нужно обвести (обвести) эллипс, первые 4 и последние 2 шага будут одинаковыми, но точки 5 и 6 будут:
- Установите для штриха текущее графическое состояние PsDocument.
- Stroke (outline) the ellipse path.
1// Add ellipse to PS document.
2
3string outputFileName = "AddEllipse_outPS.ps";
4
5//Create save options with A4 size
6PsSaveOptions options = new PsSaveOptions();
7
8// Create new 1-paged PS Document
9PsDocument document = new PsDocument(OutputDir + outputFileName, options, false);
10
11//Create graphics path from the first ellipse
12GraphicsPath path = new GraphicsPath();
13path.AddEllipse(new RectangleF(250, 100, 150, 100));
14//Set paint
15document.SetPaint(new SolidBrush(Color.Orange));
16//Fill the ellipse
17document.Fill(path);
18
19//Create graphics path from the second ellipse
20path = new GraphicsPath();
21path.AddEllipse(new RectangleF(250, 300, 150, 100));
22//Set stroke
23document.SetStroke(new Pen(new SolidBrush(Color.Red), 3));
24//Stroke (outline) the ellipse
25document.Draw(path);
26
27//Close current page
28document.ClosePage();
29
30//Save the document
31document.Save();Результат запуска этого кода выглядит так:

Как мы видим, любая фигура, как закрытая, так и незамкнутая, которую можно поместить в System.Drawing.Drawing2D.GraphicsPath, можно заполнить или нарисовать с помощью PsDocument. Его тоже можно обрезать, но это будет описано в другой статье.
Вы можете загрузить примеры и файлы данных с сайта GitHub.