Работа с холстами в XPS

Обрезка и преобразование холстов файлов XPS используя API для .NET

 

Управление холстами в документах — одна из функций, предлагаемых Aspose.Page для .NET. Это решение для работы с разными языками описания страниц, в частности XPS XPS. В приведенном ниже примере вы узнаете, как:

  • Создайте холст в файле XPS.

  • Сделайте смещения влево и вверх на основном холсте.

  • Добавьте новый холст с переведенным преобразованием на основной холст.

  • Добавьте новый холст с вращением вокруг точечной трансформации на основной холст.

  • Клипсовое полотно. И еще много манипуляций с холстами в файлах XPS.

Чтобы преобразовать холсты файла XPS, следуйте следующему руководству:

  1. Создайте XPS-файл, используя XpsDocument Class .
  2. Создайте основной холст, общий для всех элементов страницы, с помощью метода AddCanvas() .
  3. Сделайте смещения влево и вверх на основном холсте, используя метод CreateMatrix() .
  4. Создайте геометрию пути прямоугольника с помощью метода CreatePathGeometry() .
  5. Создайте заливку для прямоугольников с помощью класса XpsBrush .
  6. Чтобы создать прямоугольник на холсте 2 и заполнить его, используйте класс XpsPath .
  7. Чтобы перевести холст 3 для размещения нового прямоугольника под предыдущим прямоугольником, используйте метод CreateMatrix() .
  8. Чтобы перевести этот холст на правую сторону страницы, используйте метод Translate() .
  9. Чтобы масштабировать холст 4, вызовите метод Scale() .
  10. Чтобы повернуть холст 5 вокруг точки на 45 градусов, используется метод RotateAround() . пригодится.
  11. Сохраните измененный документ XPS с помощью метода XPsDocument.Save() .

XPS-файл Canvas Transformation Код C#

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

    // Create main canvas, common for all page elemnts
    XpsCanvas canvas1 = doc.AddCanvas();

    // Make left and top offsets in the main canvas
    canvas1.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 20, 10);

    // Create the rectangle path geometry
    XpsPathGeometry rectGeom = doc.CreatePathGeometry("M 0,0 L 200,0 200,100 0,100 Z");

    // Create a fill for rectangles
    XpsBrush fill = doc.CreateSolidColorBrush(doc.CreateColor(12, 15, 159));
            
    // Add new canvas without any transformations to the main canvas
    XpsCanvas canvas2 = canvas1.AddCanvas();
    // Create rectangle in this canvas and fill it
    XpsPath rect = canvas2.AddPath(rectGeom);
    rect.Fill = fill;

    // Add new canvas with translate transformation to the main canvas
    XpsCanvas canvas3 = canvas1.AddCanvas();
    // Translate this canvas to position new rectangle below the previous rectnagle
    canvas3.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 200);
    // Translate this canvas to the right side of the page
    canvas3.RenderTransform.Translate(500, 0);
    // Create the rectangle in this canvas and fill it
    rect = canvas3.AddPath(rectGeom);
    rect.Fill = fill;

    // Add new canvas with the double scale transformation to the main canvas
    XpsCanvas canvas4 = canvas1.AddCanvas();
    // Translate this canvas to position new rectangle below the previous rectnagle
    canvas4.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 400);
    // Scale this canvas
    canvas4.RenderTransform.Scale(2, 2);
    // Create a rectangle in this canvas and fill it
    rect = canvas4.AddPath(rectGeom);
    rect.Fill = fill;

    // Add new canvas with rotation around a point transformation to the main canvas
    XpsCanvas canvas5 = canvas1.AddCanvas();
    // Translate this canvas to position new rectangle below the previous rectnagle
    canvas5.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 0, 800);
    // Rotate this canvas aroud a point on 45 degrees
    canvas5.RenderTransform.RotateAround(45, new PointF(100, 50));
    rect = canvas5.AddPath(rectGeom);
    rect.Fill = fill;
            
    // Save the resultant XPS document
    doc.Save(dataDir + "output1.xps");
В следующем фрагменте кода показано, как обрезать холсты XPS-файлов в решении Aspose.Page для .NET Api.

Чтобы обрезать холсты файла XPS, следуйте следующему руководству:

  1. Создайте или откройте файл XPS с помощью XpsDocument Class.
  2. Создайте основной холст, общий для всех элементов страницы, с помощью метода AddCanvas() .
  3. Сделайте смещения влево и вверх на основном холсте, используя метод CreateMatrix() .
  4. Создайте геометрию пути прямоугольника с помощью метода CreatePathGeometry() .
  5. Создайте заливку для прямоугольников с помощью класса XpsBrush .
  6. Чтобы добавить еще один холст с клипом на основной холст, снова вызовите метод AddCanvas().
  7. Создайте круговую геометрию для клипа, используя класс XpsPathGeometry .
  8. Чтобы создать прямоугольник на этом холсте и заполнить его, используйте класс XpsPath .
  9. Добавьте еще один холст с помощью метода AddCanvas(), затем создайте прямоугольник на этом холсте и обведите его с помощью класса XpsPathGeometry.
  10. Сохраните измененный XPS-документ с помощью метода XPsDocument.Save().

Код C# вырезания холста XPS-файла

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

    // Create main canvas, common for all page elemnts
    XpsCanvas canvas1 = doc.AddCanvas();

    // Make left and top offsets in the main canvas
    canvas1.RenderTransform = doc.CreateMatrix(1, 0, 0, 1, 20, 10);

    // Create the rectangle path geometry
    XpsPathGeometry rectGeom = doc.CreatePathGeometry("M 0,0 L 500,0 500,300 0,300 Z");

    // Create a fill for rectangles
    XpsBrush fill = doc.CreateSolidColorBrush(doc.CreateColor(12, 15, 159));
            
    // Add another canvas with the clip to the main canvas
    XpsCanvas canvas2 = canvas1.AddCanvas();

    // Create circle geometry for the clip
    XpsPathGeometry clipGeom = doc.CreatePathGeometry("M250,250 A100,100 0 1 1 250,50 100,100 0 1 1 250,250");
    canvas2.Clip = clipGeom;

    // Create rectangle in this canvas and fill it
    XpsPath rect = canvas2.AddPath(rectGeom);
    rect.Fill = fill;

    // Add the second canvas with stroked rectangle to the main canvas
    XpsCanvas canvas3 = canvas1.AddCanvas();

    // Create rectangle in this canvas and stroke it
    rect = canvas3.AddPath(rectGeom);
    rect.Stroke = fill;
    rect.StrokeThickness = 2;

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



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

1. Как добавить холст в файл XPS?

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

2. Как манипулировать смещениями холста в файле XPS?

Задайте путь к каталогу документов и добавьте холсты. Используйте метод CreateMatrix() для создания смещений.

3. Какие операции с холстами в файле XPS поддерживаются?

Вы можете создавать, обрезать и добавлять холст, а также управлять его смещениями.

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

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