Trabalhar com Gradiente em ficheiro XPS | Python
Um gradiente é uma transição gradual entre duas ou mais cores ou tons. Nas artes visuais, gráficos e design, os gradientes são frequentemente utilizados para criar transições suaves de uma cor para outra, adicionando profundidade, dimensão e interesse visual a um objeto ou imagem. Os gradientes podem variar em complexidade, desde simples gradientes de duas cores até misturas mais complexas que envolvem múltiplas cores ou até mesmo níveis de transparência.
Aqui descobrirá como adicionar diferentes tipos de gradientes a ficheiros XPS em Python.
Adicionar Gradiente em Documento XPS
Adicionar Gradiente Horizontal
O Aspose.Page para Python via .NET disponibiliza a classe XpsGradientBrush, criada para incorporar gradientes em documentos XPS. Para tal, deve especificar XpsGradientStop e adicionar XpsPath ao objeto da classe XpsDocument. O seguinte excerto de código demonstra a funcionalidade completa para adicionar um gradiente horizontal a um documento XPS:
O resultado

1from aspose.page.xps import *
2from aspose.page.xps.xpsmodel import *
3import aspose.pydrawing
4from util import Util
5# The path to the documents directory.
6data_dir = Util.get_data_dir_working_with_gradient()
7# Create a new XPS Document
8doc = XpsDocument()
9# Initialize a List of XpsGradentStop
10stops = []
11stops.append(doc.create_gradient_stop(doc.create_color(255, 244, 253, 225), 0.0673828))
12stops.append(doc.create_gradient_stop(doc.create_color(255, 251, 240, 23), 0.314453))
13stops.append(doc.create_gradient_stop(doc.create_color(255, 252, 209, 0), 0.482422))
14stops.append(doc.create_gradient_stop(doc.create_color(255, 241, 254, 161), 0.634766))
15stops.append(doc.create_gradient_stop(doc.create_color(255, 53, 253, 255), 0.915039))
16stops.append(doc.create_gradient_stop(doc.create_color(255, 12, 91, 248), 1))
17# Create a new path by defining geometery in an abbreviation form
18path = doc.add_path(doc.create_path_geometry("M 10,210 L 228,210 228,300 10,300"))
19path.render_transform = doc.create_matrix(1, 0, 0, 1, 20, 70)
20gradient: XpsLinearGradientBrush = doc.create_linear_gradient_brush(aspose.pydrawing.PointF(10, 0), aspose.pydrawing.PointF(228, 0))
21path.fill = gradient
22gradient.gradient_stops.extend(stops)
23# Save the resultant XPS document
24doc.save(data_dir + "AddHorizontalGradient_outXPS.xps")Adicionar Gradiente Vertical
O Aspose.Page para Python via .NET inclui a classe XpsGradientBrush para incorporar gradientes em documentos XPS. Para tal, deve especificar XpsGradientStop e adicionar XpsPath ao objeto da classe XpsDocument. O seguinte excerto de código demonstra a funcionalidade completa para adicionar um gradiente vertical a um documento XPS:
O resultado

1from aspose.page.xps import *
2from aspose.page.xps.xpsmodel import *
3import aspose.pydrawing
4from util import Util
5# The path to the documents directory.
6data_dir = Util.get_data_dir_working_with_gradient()
7# Create a new XPS Document
8doc = XpsDocument()
9# Initialize a List of XpsGradentStop
10stops = []
11stops.append(doc.create_gradient_stop(doc.create_color(253, 255, 12, 0), 0))
12stops.append(doc.create_gradient_stop(doc.create_color(252, 255, 154, 0), 0.359375))
13stops.append(doc.create_gradient_stop(doc.create_color(252, 255, 56, 0), 0.424805))
14stops.append(doc.create_gradient_stop(doc.create_color(253, 255, 229, 0), 0.879883))
15stops.append(doc.create_gradient_stop(doc.create_color(252, 255, 255, 234), 1))
16# Create a new path by defining geometery in an abbreviation form
17path = doc.add_path(doc.create_path_geometry("M 10,110 L 228,110 228,200 10,200"))
18path.render_transform = doc.create_matrix(1, 0, 0, 1, 20, 70)
19gradient: XpsLinearGradientBrush = doc.create_linear_gradient_brush(aspose.pydrawing.PointF(10, 110), aspose.pydrawing.PointF(10, 200))
20path.fill = gradient
21gradient.gradient_stops.extend(stops)
22# Save the resultant XPS document
23doc.save(data_dir + "AddVerticalGradient_outXPS.xps")Adicionar Gradiente Diagonal
O próximo excerto de código mostra a funcionalidade completa de como adicionar um gradiente linear num documento XPS:
1from aspose.page.xps import *
2from aspose.page.xps.xpsmodel import *
3import aspose.pydrawing
4from util import Util
5# The path to the documents directory.
6data_dir = Util.get_data_dir_working_with_gradient()
7# Create a new XPS Document
8doc = XpsDocument()
9# Initialize a List of XpsGradentStop
10stops = []
11# Add Colors to Gradient
12stops.append(doc.create_gradient_stop(doc.create_color(0, 142, 4), 0))
13stops.append(doc.create_gradient_stop(doc.create_color(255, 202, 0), 0.144531))
14stops.append(doc.create_gradient_stop(doc.create_color(255, 250, 0), 0.264648))
15stops.append(doc.create_gradient_stop(doc.create_color(255, 0, 0), 0.414063))
16stops.append(doc.create_gradient_stop(doc.create_color(233, 0, 255), 0.544922))
17stops.append(doc.create_gradient_stop(doc.create_color(107, 27, 190), 0.694336))
18stops.append(doc.create_gradient_stop(doc.create_color(63, 0, 255), 0.844727))
19stops.append(doc.create_gradient_stop(doc.create_color(0, 199, 80), 1))
20# Create a new path by defining geometery in an abbreviation form
21path = doc.add_path(doc.create_path_geometry("M 10,10 L 228,10 228,100 10,100"))
22path.render_transform = doc.create_matrix(1, 0, 0, 1, 20, 70)
23gradient: XpsLinearGradientBrush = doc.create_linear_gradient_brush(aspose.pydrawing.PointF(10, 10), aspose.pydrawing.PointF(228, 100))
24path.fill = gradient
25gradient.gradient_stops.extend(stops)
26# Save the resultant XPS document
27doc.save(data_dir + "AddDiagonalGradient_outXPS.xps")O resultado

Pode descarregar exemplos e ficheiros de dados do GitHub.