Trabalhar com o Visual Brush num ficheiro XPS | Python
Um pincel visual é uma ferramenta poderosa para criar designs visualmente atraentes e dinâmicos em contextos de design gráfico e desenvolvimento de software. São utilizados para preencher ou traçar formas com conteúdo visual, como imagens, gradientes ou outros elementos gráficos, permitindo pintar um elemento visual com outro.
Em termos mais técnicos, um pincel visual é um tipo de pincel que faz referência a um objeto visual, como uma imagem ou um elemento de interface do utilizador, e utiliza esse objeto para definir a aparência de uma forma ou caminho. Quando aplicado a uma forma, o pincel visual renderiza o objeto visual referenciado dentro dos limites da forma. Podem ser utilizados para preencher uma forma com uma imagem, criar padrões ou texturas ou até mesmo aplicar efeitos gráficos complexos.
Adicionar Grelha utilizando o Pincel Visual
O Aspose.Page para Python via .NET disponibiliza a classe XpsVisualBrush, permitindo adicionar uma grelha a um documento XPS. Para tal, deve especificar um XpsPathGeometry e adicionar um XpsCanvas ao objeto da classe XpsDocument. O seguinte excerto de código demonstra a funcionalidade completa para adicionar uma grelha a um documento XPS:
1# The path to the documents directory.
2data_dir = Util.get_data_dir_working_with_visual_brush()
3
4doc = XpsDocument()
5# Geometry for the magenta grid VisualBrush
6path_geometry = doc.create_path_geometry()
7path_geometry.add_segment(doc.create_poly_line_segment(
8[ aspose.pydrawing.PointF(240, 5), aspose.pydrawing.PointF(240, 310), aspose.pydrawing.PointF(0, 310) ], True))
9path_geometry[0].start_point = aspose.pydrawing.PointF(0, 5)
10
11# Canvas for the magenta grid VisualBrush
12visual_canvas = doc.create_canvas()
13
14visual_path = visual_canvas.add_path(
15doc.create_path_geometry("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"))
16visual_path.fill = doc.create_solid_color_brush(doc.create_color(1, .61, 0.1, 0.61))
17
18grid_path = doc.create_path(path_geometry)
19#Create a Visual Brush, it is specified by some XPS fragment (vector graphics and glyphs)
20visualBrush: XpsVisualBrush = doc.create_visual_brush(visual_canvas,
21 aspose.pydrawing.RectangleF(0, 0, 10, 10), aspose.pydrawing.RectangleF(0, 0, 10, 10))
22grid_path.fill = visualBrush
23visualBrush.tile_mode = XpsTileMode.TILE
24# New canvas
25canvas = doc.add_canvas()
26canvas.render_transform = doc.create_matrix(1, 0, 0, 1, 268, 70)
27# Add a grid
28canvas.add_path(path_geometry)
29# Red transparent rectangle in the middle top
30path = canvas.add_path(doc.create_path_geometry("M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"))
31path = canvas.add_path(doc.create_path_geometry("M 10,10 L 228,10 228,100 10,100"))
32path.fill = doc.create_solid_color_brush(doc.create_color(1.0, 0.0, 0.0))
33path.opacity = 0.7
34# Save the resultant XPS document
35doc.save(data_dir + "AddGrid_out.xps")
O resultado está a seguir
Pode descarregar exemplos e ficheiros de dados do GitHub.