Trabalhando com pincéis e gradientes
Solução C# .NET API para trabalhar com brushes e gradientes de arquivos XPS.
A solução Aspose.Page para .NET API permite manipular gráficos vetoriais de arquivos XPS. Você pode criar várias formas geométricas de diferentes cores e texturas. Nesta página serão descritos alguns exemplos de como adicionar diferentes espaços de cores e gradientes e como trabalhar com diferentes pincéis. Trabalhando analogicamente, você poderá criar qualquer figura geométrica que precisar de qualquer cor.
Para manipular pincéis e gradientes de arquivos XPS, precisamos:
Aspose.Page for .NET API, que é uma API de manipulação e conversão de documentos rica em recursos, poderosa e fácil de usar para plataforma C#.
Abra o gerenciador de pacotes NuGet, pesquise Aspose.Page e instale. Você também pode usar o seguinte comando do Console do Gerenciador de Pacotes.
Package Manager Console Command
PM> Install-Package Aspose.Page
Etapas para aplicar espaços de cores com C# .NET.
- Defina o caminho para o diretório de documentos.
- Crie um arquivo XPS usando a XpsDocument Class .
- Para criar diferentes retângulos preenchidos com cores sólidas, use métodos da classe XpsPath .
- Salve o documento XPS alterado usando o método XPsDocument.Save() .
Código C# para definir espaços de cores de um arquivo 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");
Etapas para trabalhar com pincel visual com C#.
- Defina o caminho para o diretório de documentos.
- Crie um arquivo XPS usando a XpsDocument Class.
- Crie geometria para o Visual Brush de grade magenta usando a classe XpsPathGeometry .
- Para definir a tela para a grade magenta Visual Brush, use o método CreateCanvas() .
- Para criar o Visual Brush, use o método CreateVisualBrush() .
- Salve o documento XPS alterado por meio do método XPsDocument.Save().
Código C# para manipular o pincel visual de um arquivo 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");
Etapas para adicionar gradiente horizontal com C#.
- Defina o caminho para o diretório de documentos.
- Crie um arquivo XPS usando a XpsDocument Class.
- Inicialize uma lista de XpsGradentStop usando CreateGradientStop() e CreateColor() Métodos.
- Crie um novo caminho definindo a geometria em uma forma de abreviação usando métodos da classe XpsPath.
- Salve o documento XPS alterado por meio do método XPsDocument.Save().
Código C# para inserir gradiente horizontal em um arquivo 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");
Perguntas frequentes
1. Como posso adicionar um gradiente a um arquivo XPS?
Defina o caminho para o diretório de documentos. Para adicionar gradiente use os métodos CreateColor() e CreateGradientStop().
2. Como trabalhar com pincel visual em um arquivo XPS?
Defina o caminho para o diretório de documentos. Para criar um pincel visual use o método CreateVisualBrush().
3. Como abrir o arquivo XPS?
Use a solução Aspose.Page API para abrir XPS arquivo programaticamente ou por meio de plataforma cruzada XPS Viewer .
XPS O que é XPS Formato de Arquivo
O formato XPS é semelhante ao formato PDF. Ambos são formatos de linguagem de descrição de página (PDL). EPS é baseado em HTML e não em linguagem PostScript. O arquivo .eps é capaz de conter uma marcação da estrutura do documento junto com as informações de como o documento ficaria. Há também instruções adicionadas sobre como imprimir e renderizar o documento. A característica do formato é que ele corrige a descrição do documento, o que significa que ele terá a mesma aparência, não importa quem e de qual sistema operacional o abra.