Trabajar con Visual Brush en un archivo XPS | Pitón
Un pincel visual es una herramienta poderosa para crear diseños visualmente atractivos y dinámicos en contextos de diseño gráfico y desarrollo de software. Se utilizan para rellenar o trazar formas con contenido visual, como imágenes, degradados u otros elementos gráficos que le permiten pintar un elemento visual con otro.
En términos más técnicos, un pincel visual es un tipo de pincel que hace referencia a un objeto visual, como una imagen o un elemento de la interfaz de usuario, y utiliza ese objeto para definir la apariencia de una forma o trazado. Cuando se aplica a una forma, el pincel visual representa el objeto visual al que se hace referencia dentro de los límites de la forma. Se pueden utilizar para rellenar una forma con una imagen, crear patrones o texturas o incluso aplicar efectos gráficos complejos.
Agregar cuadrícula usando el pincel visual
Aspose.Page para Python a través de .NET proporciona la clase XpsVisualBrush, que le permite agregar una cuadrícula a un documento XPS. Para lograr esto, debe especificar un XpsPathGeometry y agregar un XpsCanvas al objeto de la clase XpsDocument. El siguiente fragmento de código demuestra la funcionalidad completa para agregar una cuadrícula a un 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")
El resultado is next
Puede descargar ejemplos y archivos de datos desde GitHub.