Работа с Visual Brush в файле XPS | Питон
Визуальная кисть — мощный инструмент для создания визуально привлекательных и динамичных дизайнов в контексте графического дизайна и разработки программного обеспечения. Они используются для заполнения или обводки фигур визуальным содержимым, таким как изображения, градиенты или другие графические элементы, позволяющие рисовать один визуальный элемент другим.
Говоря более техническим языком, визуальная кисть — это тип кисти, которая ссылается на визуальный объект, например изображение или элемент пользовательского интерфейса, и использует этот объект для определения внешнего вида фигуры или пути. При применении к фигуре визуальная кисть визуализирует указанный визуальный объект в границах фигуры. Их можно использовать для заполнения формы изображением, создания узоров или текстур или даже применения сложных графических эффектов.
Добавьте сетку с помощью визуальной кисти
Aspose.Page для Python через .NET предоставляет класс XpsVisualBrush, позволяющий добавлять сетку в документ XPS. Для этого необходимо указать XpsPathGeometry и добавить XpsCanvas к объекту класса XpsDocument. Следующий фрагмент кода демонстрирует полную функциональность добавления сетки в документ 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")
Результат is next
Вы можете загрузить примеры и файлы данных с сайта GitHub.