Пензлі та градієнти в XPS
Рішення C# .NET API для роботи з пензлями та градієнтами файлів XPS.
Рішення Aspose.Page для .NET API дозволяє маніпулювати векторною графікою файлів XPS. Ви можете створювати різні геометричні фігури різних кольорів і текстур. На цій сторінці буде описано кілька прикладів того, як додавати різні кольорові простори та градієнти, а також як працювати з різними пензлями. Працюючи аналогічно, ви зможете створити будь-яку потрібну вам геометричну фігуру будь-якого кольору.
Для маніпулювання пензлями та градієнтами файлів XPS нам потрібні:
Aspose.Page для .NET API, який є багатофункціональним, потужним і простим у використанні API для маніпулювання та конвертації документів для платформи C#.
Відкрийте менеджер пакетів NuGet, знайдіть Aspose.Page і встановіть. Ви також можете скористатися наступною командою в консолі менеджера пакетів.
Package Manager Console Command
PM> Install-Package Aspose.Page
Кроки для застосування кольорових просторів за допомогою C# .NET.
- Встановіть шлях до каталогу документів.
- Створіть файл XPS за допомогою Класу XpsDocument .
- Щоб створити різні прямокутники, заповнені суцільним кольором, використовуйте методи класу XpsPath .
- Збережіть змінений документ XPS за допомогою методу XPsDocument.Save() .
Код C# для налаштування кольорових просторів файлу 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");Кроки для роботи з візуальним пензлем за допомогою C#.
- Встановіть шлях до каталогу документів.
- Створіть файл XPS за допомогою класу XpsDocument.
- Створіть геометрію для візуального пензля з пурпуровою сіткою за допомогою класу XpsPathGeometry .
- Щоб встановити полотно для візуального пензля з пурпуровою сіткою, використовуйте метод CreateCanvas() .
- Щоб створити візуальний пензель, використовуйте метод CreateVisualBrush() .
- Збережіть змінений документ 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#.
- Встановіть шлях до каталогу документів.
- Створіть файл XPS за допомогою класу XpsDocument.
- Ініціалізуйте список XpsGradentStop за допомогою методів CreateGradientStop() та CreateColor() .
- Створіть новий шлях, визначивши геометрію в скороченій формі за допомогою методів класу XpsPath.
- Збережіть змінений документ XPS за допомогою методу XPsDocument.Save().
Код C# для вставки горизонтального градієнта у файл 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");FAQ
1. Як я можу додати градієнт до файлу XPS?
Вкажіть шлях до каталогу документів. Щоб додати градієнт, використовуйте методи CreateColor() і CreateGradientStop().
2. Як працювати з візуальним пензлем у файлі XPS?
Вкажіть шлях до каталогу документів. Щоб створити візуальний пензель, використовуйте метод CreateVisualBrush().
3. Як відкрити файл XPS?
Використовуйте рішення Aspose.Page API, щоб відкрити XPS файл програмним шляхом або за допомогою кросплатформного застосунку для перегляду XPS .
XPS What is XPS File Format
XPS (XML Paper Specification) — альтернатива Microsoft до PDF. Заснований на XML/HTML, зберігає макет на різних платформах і не залежить від операційної системи.