Работа с холстами в XPS
Обрезка и преобразование холстов файлов XPS используя API для .NET
Управление холстами в документах — одна из функций, предлагаемых Aspose.Page для .NET. Это решение для работы с разными языками описания страниц, в частности XPS XPS. В приведенном ниже примере вы узнаете, как:
Создайте холст в файле XPS.
Сделайте смещения влево и вверх на основном холсте.
Добавьте новый холст с переведенным преобразованием на основной холст.
Добавьте новый холст с вращением вокруг точечной трансформации на основной холст.
Клипсовое полотно. И еще много манипуляций с холстами в файлах XPS.
Чтобы преобразовать холсты файла XPS, следуйте следующему руководству:
- Создайте XPS-файл, используя XpsDocument Class .
- Создайте основной холст, общий для всех элементов страницы, с помощью метода AddCanvas() .
- Сделайте смещения влево и вверх на основном холсте, используя метод CreateMatrix() .
- Создайте геометрию пути прямоугольника с помощью метода CreatePathGeometry() .
- Создайте заливку для прямоугольников с помощью класса XpsBrush .
- Чтобы создать прямоугольник на холсте 2 и заполнить его, используйте класс XpsPath .
- Чтобы перевести холст 3 для размещения нового прямоугольника под предыдущим прямоугольником, используйте метод CreateMatrix() .
- Чтобы перевести этот холст на правую сторону страницы, используйте метод Translate() .
- Чтобы масштабировать холст 4, вызовите метод Scale() .
- Чтобы повернуть холст 5 вокруг точки на 45 градусов, используется метод RotateAround() . пригодится.
- Сохраните измененный документ 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, следуйте следующему руководству:
- Создайте или откройте файл XPS с помощью XpsDocument Class.
- Создайте основной холст, общий для всех элементов страницы, с помощью метода AddCanvas() .
- Сделайте смещения влево и вверх на основном холсте, используя метод CreateMatrix() .
- Создайте геометрию пути прямоугольника с помощью метода CreatePathGeometry() .
- Создайте заливку для прямоугольников с помощью класса XpsBrush .
- Чтобы добавить еще один холст с клипом на основной холст, снова вызовите метод AddCanvas().
- Создайте круговую геометрию для клипа, используя класс XpsPathGeometry .
- Чтобы создать прямоугольник на этом холсте и заполнить его, используйте класс XpsPath .
- Добавьте еще один холст с помощью метода AddCanvas(), затем создайте прямоугольник на этом холсте и обведите его с помощью класса XpsPathGeometry.
- Сохраните измененный 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 может содержать разметку структуры документа вместе с информацией о том, как документ будет выглядеть. Также добавлены инструкции о том, как распечатать и визуализировать документ. Особенность формата в том, что он фиксирует описание документа, а значит, он будет выглядеть одинаково независимо от того, кто и из какой операционной системы его открывает.