Работа с кистями и градиентами в XPS

Решение C# .NET API для работы с кистями и градиентами файлов XPS.

 

Решение Aspose.Page для .NET API позволяет управлять векторной графикой файлов XPS. Вы можете создавать различные геометрические фигуры разных цветов и текстур. На этой странице будет описано несколько примеров того, как добавлять разные цветовые пространства и градиенты, и как работать с разными кистями. Работая аналогично, вы сможете создать любую нужную вам геометрическую фигуру любого цвета.

Для работы с кистями и градиентами файлов XPS нам потребуется:

  • Aspose.Page for .NET API — многофункциональное, мощное и простое в использовании API решение для обработки и преобразования документов для платформы C#.

  • Откройте диспетчер пакетов NuGet, найдите Aspose.Page и установите. Вы также можете использовать следующую команду из консоли диспетчера пакетов.

Package Manager Console Command


    PM> Install-Package Aspose.Page

Порядок действий по применению цветовых пространств с помощью C# .NET.

  1. Укажите путь к каталогу документов.
  2. Создайте XPS-файл, используя XpsDocument Class .
  3. Для создания различных прямоугольников с заливкой сплошным цветом используйте методы класса XpsPath .
  4. Сохраните измененный документ XPS с помощью метода XPsDocument.Save() .

Код С# для установки цветовых пространств файла XPS

    using Aspose.Page.XPS;
    using Aspose.Page.XPS.XpsModel;
    using System.Drawing;
    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithShapes();
            
    // Create a new XPS Document
    XpsDocument doc = new XpsDocument();

    // ARGB solid color filled rectangle
    XpsPath rect1 = doc.AddPath(doc.CreatePathGeometry("M 20,10 L 220,10 220,100 20,100 Z"));
    rect1.Fill = doc.CreateSolidColorBrush(doc.CreateColor(Color.FromArgb(222, 12, 15, 159)));

    // ARGB solid color filled rectangle, in another way
    XpsPath rect2 = doc.AddPath(doc.CreatePathGeometry("M 20,210 L 220,210 220,300 20,300 Z"));
    rect2.Fill = doc.CreateSolidColorBrush(doc.CreateColor(222, 12, 15, 159));

    // sRGB solid color filled rectangle
    XpsPath rect3 = doc.AddPath(doc.CreatePathGeometry("M 20,410 L 220,410 220,500 20,500 Z"));
    rect3.Fill = doc.CreateSolidColorBrush(doc.CreateColor(12, 15, 159));

    // scRGB solid color filled rectangle
    XpsPath rect4 = doc.AddPath(doc.CreatePathGeometry("M 20,610 L 220,610 220,700 20,700 Z"));
    rect4.Fill = doc.CreateSolidColorBrush(doc.CreateColor(0.08706f, 0.04706f, 0.05882f, 0.62353f));

    // CMYK (blue) solid color filled rectangle
    XpsPath rect5 = doc.AddPath(doc.CreatePathGeometry("M 20,810 L 220,810 220,900 20,900 Z"));
    rect5.Fill = doc.CreateSolidColorBrush(
        doc.CreateColor(dataDir + "uswebuncoated.icc", 1.0f, 1.000f, 0.000f, 0.000f, 0.000f));
            
    // Save the resultant XPS document
    doc.Save(dataDir + "ApplyDifferentColorSpaces_out.xps");
В следующем фрагменте кода показано, как использовать визуальную кисть файла XPS в решении Aspose.Page для .NET Api.

Шаги по работе с визуальной кистью в C#.

  1. Укажите путь к каталогу документов.
  2. Создайте файл XPS, используя класс XpsDocument.
  3. Создайте геометрию для пурпурной сетки Visual Brush с помощью класса XpsPathGeometry .
  4. Чтобы установить холст для пурпурной сетки Visual Brush, используйте метод CreateCanvas() .
  5. Чтобы создать визуальную кисть, используйте метод CreateVisualBrush() .
  6. Сохраните измененный XPS-документ с помощью метода XPsDocument.Save().

Код C# для управления визуальной кистью файла XPS

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithVisualBrush();

    XpsDocument doc = new XpsDocument();
    // Geometry for the magenta grid VisualBrush
    XpsPathGeometry pathGeometry = doc.CreatePathGeometry();
    pathGeometry.AddSegment(doc.CreatePolyLineSegment(
        new PointF[] { new PointF(240f, 5f), new PointF(240f, 310f), new PointF(0f, 310f) }));
    pathGeometry[0].StartPoint = new PointF(0f, 5f);

    // Canvas for the magenta grid VisualBrush
    XpsCanvas visualCanvas = doc.CreateCanvas();

    XpsPath visualPath = visualCanvas.AddPath(
        doc.CreatePathGeometry("M 0,4 L 4,4 4,0 6,0 6,4 10,4 10,6 6,6 6,10 4,10 4,6 0,6 Z"));
    visualPath.Fill = doc.CreateSolidColorBrush(doc.CreateColor(1f, .61f, 0.1f, 0.61f));

    XpsPath gridPath = doc.CreatePath(pathGeometry);
    // Create the Visual Brush, it is specified by some XPS fragment (vector graphics and glyphs)
    gridPath.Fill = doc.CreateVisualBrush(visualCanvas,
        new RectangleF(0f, 0f, 10f, 10f), new RectangleF(0f, 0f, 10f, 10f));
    ((XpsVisualBrush)gridPath.Fill).TileMode = XpsTileMode.Tile;
    // New canvas
    XpsCanvas canvas = doc.AddCanvas();
    canvas.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 268f, 70f);
    // Add a grid
    canvas.AddPath(pathGeometry);
    // Red transparent rectangle in the middle top
    XpsPath path = canvas.AddPath(doc.CreatePathGeometry("M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"));
    path = canvas.AddPath(doc.CreatePathGeometry("M 10,10 L 228,10 228,100 10,100"));
    path.Fill = doc.CreateSolidColorBrush(doc.CreateColor(1.0f, 0.0f, 0.0f));
    path.Opacity = 0.7f;
    // Save the resultant XPS document
    doc.Save(dataDir + "AddGrid_out.xps");

Порядок действий по добавлению горизонтального градиента с помощью C#.

  1. Укажите путь к каталогу документов.
  2. Создайте файл XPS, используя класс XpsDocument.
  3. Инициализируйте список XpsGradentStop, используя CreateGradientStop() и CreateColor() Методы.
  4. Создайте новый путь, определив геометрию в форме аббревиатуры, используя методы класса XpsPath.
  5. Сохраните измененный XPS-документ с помощью метода XPsDocument.Save().

Код С# для вставки горизонтального градиента в файл XPS

    // The path to the documents directory.
    string dataDir = RunExamples.GetDataDir_WorkingWithGradient();
    // Create a new XPS Document
    XpsDocument doc = new XpsDocument();

    // Initialize the List of XpsGradentStop
    List<XpsGradientStop> stops = new List<XpsGradientStop>();
    stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 244, 253, 225), 0.0673828f));
    stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 251, 240, 23), 0.314453f));
    stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 252, 209, 0), 0.482422f));
    stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 241, 254, 161), 0.634766f));
    stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 53, 253, 255), 0.915039f));
    stops.Add(doc.CreateGradientStop(doc.CreateColor(255, 12, 91, 248), 1f));

    // Create a new path by defining the geometery in the abbreviation form
    XpsPath path = doc.AddPath(doc.CreatePathGeometry("M 10,210 L 228,210 228,300 10,300"));
    path.RenderTransform = doc.CreateMatrix(1f, 0f, 0f, 1f, 20f, 70f);
    path.Fill = doc.CreateLinearGradientBrush(new PointF(10f, 0f), new PointF(228f, 0f));
    ((XpsGradientBrush)path.Fill).GradientStops.AddRange(stops);

    // Save the resultant XPS document
    doc.Save(dataDir + "AddHorizontalGradient_out.xps");



Часто задаваемые вопросы

1. Как добавить градиент в файл XPS?

Задайте путь к каталогу документов. Чтобы добавить градиент, используйте методы CreateColor() и CreateGradientStop().

2. Как работать с визуальной кистью в файле XPS?

Задайте путь к каталогу документов. Чтобы создать визуальную кисть, используйте метод CreateVisualBrush().

3. Как открыть файл XPS?

Используйте решение Aspose.Page API, чтобы открыть XPS файл программно или с помощью кроссплатформенного XPS Viewer .

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

Формат XPS похож на формат PDF. Оба являются форматами языка описания страниц (PDL). EPS основан на HTML, а не на языке PostScript. Файл .eps может содержать разметку структуры документа вместе с информацией о том, как документ будет выглядеть. Также добавлены инструкции о том, как распечатать и визуализировать документ. Особенность формата в том, что он фиксирует описание документа, а значит, он будет выглядеть одинаково независимо от того, кто и из какой операционной системы его открывает.