Работа с фигурами в PostScript | .NET

Добавить фигуры в документ PS

Добавить прямоугольник в PS

Чтобы добавить прямоугольник в PsDocument с помощью библиотеки Aspose.Page для .NET, нам необходимо выполнить следующие шаги:

  1. Создайте выходной поток для полученного PS-файла.
  2. Создайте объект PsSaveOptions с параметрами по умолчанию.
  3. Создайте одностраничный PsDocument с уже созданным потоком вывода и сохраните параметры.
  4. Создайте прямоугольник System.Drawing.Drawing2D.GraphicsPath на основе прямоугольника.
  5. Установите отрисовку текущего графического состояния PsDocument.
  6. Заполните прямоугольник.
  7. Закройте страницу.
  8. Сохраните документ.

Если нам нужно обвести (обвести) прямоугольник, то первые 4 и последние 2 шага будут одинаковыми, но точки 5 и 6 будут:

  1. Установите обводку в соответствии с текущим графическим состоянием PsDocument.

  2. Обведите (обведите) прямоугольник.

 1//Create an output stream for PostScript document
 2using (Stream outPsStream = new FileStream(dataDir + "AddRectangle_outPS.ps", FileMode.Create))
 3{
 4    //Create save options with A4 size
 5    PsSaveOptions options = new PsSaveOptions();
 6
 7    // Create new 1-paged PS Document
 8    PsDocument document = new PsDocument(outPsStream, options, false);
 9
10    //Create graphics path from the first rectangle
11    GraphicsPath path = new GraphicsPath();
12    path.AddRectangle(new RectangleF(250, 100, 150, 100));
13    //Set paint
14    document.SetPaint(new SolidBrush(Color.Orange));
15    //Fill the rectangle
16    document.Fill(path);
17
18    //Create graphics path from the second rectangle
19    path = new GraphicsPath();
20    path.AddRectangle(new RectangleF(250, 300, 150, 100));
21    //Set stroke
22    document.SetStroke(new Pen(new SolidBrush(Color.Red), 3));
23    //Stroke (outline) the rectangle
24    document.Draw(path);
25
26    //Close current page
27    document.ClosePage();
28
29    //Save the document
30    document.Save();
31}

Для 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 шагов:

  1. Создайте выходной поток для полученного PS-файла.
  2. Создайте объект PsSaveOptions с параметрами по умолчанию.
  3. Создайте одностраничный PsDocument с уже созданным потоком вывода и сохраните параметры.
  4. Создайте эллипс System.Drawing.Drawing2D.GraphicsPath из прямоугольника.
  5. Установите для краски текущее графическое состояние PsDocument.
  6. Заполните контур эллипса.
  7. Закройте страницу.
  8. Сохраните документ.

Если нам нужно обвести (обвести) эллипс, первые 4 и последние 2 шага будут одинаковыми, но точки 5 и 6 будут:

  1. Установите для штриха текущее графическое состояние PsDocument.

6. Stroke (outline) the ellipse path.
 1//Create an output stream for PostScript document
 2using (Stream outPsStream = new FileStream(dataDir + "AddEllipse_outPS.ps", FileMode.Create))
 3{
 4    //Create save options with A4 size
 5    PsSaveOptions options = new PsSaveOptions();
 6
 7    // Create new 1-paged PS Document
 8    PsDocument document = new PsDocument(outPsStream, options, false);
 9
10    //Create graphics path from the first ellipse
11    GraphicsPath path = new GraphicsPath();
12    path.AddEllipse(new RectangleF(250, 100, 150, 100));
13    //Set paint
14    document.SetPaint(new SolidBrush(Color.Orange));
15    //Fill the ellipse
16    document.Fill(path);
17
18    //Create graphics path from the second ellipse
19    path = new SystemGraphicsPath();
20    path.AddEllipse(new RectangleF(250, 300, 150, 100));
21    //Set stroke
22    document.SetStroke(new Pen(new SolidBrush(Color.Red), 3));
23    //Stroke (outline) the ellipse
24    document.Draw(path);
25
26    //Close current page
27    document.ClosePage();
28
29    //Save the document
30    document.Save();
31}

Результат запуска этого кода выглядит так:

Добавить эллипс

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

Вы можете загрузить примеры и файлы данных с сайта GitHub.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.