Пензлі та градієнти в 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 Class .
- Щоб створити різнокольорові прямокутники, використовуйте методи класу 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 Class.
- Створіть геометрію для пурпурової сітки Visual Brush за допомогою класу XpsPathGeometry .
- Щоб встановити полотно для пурпурової сітки Visual Brush, використайте метод CreateCanvas() .
- Щоб створити Visual Brush, скористайтесь методом 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 Class.
- Ініціалізуйте список 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 схожий на формат PDF. Обидва є форматами мови опису сторінок (PDL). EPS базується на HTML, а не на мові PostScript. Файл .eps може містити розмітку структури документа разом з інформацією про те, як документ буде виглядати. Також додано інструкції щодо друку та рендерингу документа. Особливістю формату є те, що він фіксує опис документа, тобто він виглядатиме однаково, хто б і з якої операційної системи його не відкривав.