Робота з полотнами в 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 з 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.

Щоб обрізати полотна файлу 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");



FAQ

1. Як я можу додати полотно до файлу XPS?

Вкажіть шлях до каталогу документів. Щоб додати полотна, використовуйте метод AddCanvas().

2. Як керувати зсувами полотна у файлі XPS?

Вкажіть шлях до каталогу документів і додайте полотна. Використовуйте метод CreateMatrix(), щоб зробити зміщення.

3. Які операції з полотнами у файлі XPS підтримуються?

Ви можете створювати, вирізати та додавати полотно, а також керувати його зміщенням.

XPS What is XPS File Format

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