Робота з шаблонами штрихування у файлі PS | Python
Додайте шаблон штрихування в документ PS
Шаблони штрихування, які часто складаються з простих чорно-білих зображень із різними дизайнами штрихування, служать шаблонами мозаїки текстури. У Aspose.Page для Python через .NET ці шаблони представлені класом aspose.pydrawing.drawing2d.HatchBrush, похідним від aspose.pydrawing.Brush. На відміну від aspose.pydrawing.TextureBrush, HatchBrush пропонує іменовані попередньо визначені стилі, що визначають зображення, яке використовується для мозаїки. Aspose.Page для Python надає 53 стилі штрихування, усі з яких можна використовувати для заливки або обведення в PsDocument.
Щоб намалювати графічні об’єкти шаблоном штрихування, створіть HatchBrush із потрібним стилем штрихування та передайте його в set_paint() або один із методів fill_text() або fill_and_stroke_text(), що приймає aspose.pydrawing.Brush.
Щоб окреслити графічні об’єкти шаблоном штрихування, установіть шаблон штрихування як поточну фарбу в PsDocument, створіть новий aspose.pydrawing.Pen і передайте його в set_stroke() або один із Методи outline_text() або fill_and_stroke_text() приймають aspose.pydrawing.Pen.
Наведений нижче приклад демонструє заповнення фігури шаблоном штрихування, демонстрацію різних стилів штрихування в Python, а також заповнення та обведення тексту шаблоном штрихування.
Ось алгоритм малювання графічних об’єктів штрихуванням у новому документі PS:
- Створіть вихідний потік для отриманого файлу PS.
- Запустіть PsSaveOptions.
- Створіть PsDocument із уже створеним вихідним потоком і параметрами збереження.
- Створіть фігуру або шрифт залежно від того, який об’єкт ми збираємося заповнити або окреслити.
- Створіть об’єкт aspose.pydrawing.drawing2d.HatchBrush із потрібним стилем.
- Встановіть фарбу штрихування як поточну фарбу в PsDocument
- Заповніть фігуру поточною фарбою або заповніть текст. Якщо ми використовуємо один із методів заповнення тексту, який приймає aspose.pydrawing.Brush як параметр, попередній крок можна пропустити.
- Закрийте сторінку.
- Збережіть документ.
Якщо нам потрібно обвести (контурувати) графічні об’єкти з шаблоном штрихування замість останніх 4 кроків, вони матимуть наступний вигляд:
- Встановіть фарбу штрихування як поточну фарбу в PsDocument.
- Створіть об’єкт aspose.pydrawing.Pen.
- Встановіть цей штрих як поточний штрих у PsDocument.
- Окресліть фігуру поточною фарбою та обведіть або обведіть текст. Якщо ми використовуємо один із методів виділення тексту, який приймає aspose.pydrawing.Pen як параметр, попередній крок можна проігнорувати.
- Закрийте сторінку.
- Збережіть документ.
1# The path to the documents directory.
2data_dir = Util.get_data_dir_working_with_hatches()
3
4# Create an output stream for the PostScript document
5with open(data_dir + "AddHatchPattern_outPS.ps", "wb") as out_ps_stream:
6 # Create the save options with A4 size
7 options = PsSaveOptions()
8
9 # Create a new 1-paged PS Document
10 document = PsDocument(out_ps_stream, options, False)
11
12 x0 = 20.
13 y0 = 100.
14 square_side = 32.
15 width = 500.
16 sum_x = 0.
17
18 # Restore a graphics state
19 document.write_graphics_save()
20
21 # Translate to initial point
22 document.translate(x0, y0)
23
24 # Create a rectngle path for every pattern square
25 path = aspose.pydrawing.drawing2d.GraphicsPath()
26 path.add_rectangle(aspose.pydrawing.RectangleF(0, 0, square_side, square_side))
27
28 # Create a pen for outlining the pattern square
29 pen = GraphicsFactory.create_pen_by_color_and_width(aspose.pydrawing.Color.black, 2)
30
31 # For every hatch pattern style
32 hatch_style = 0
33 while hatch_style <= 52:
34 # Set the paint with the current hatch brush style
35 document.set_paint(aspose.pydrawing.drawing2d.HatchBrush(aspose.pydrawing.drawing2d.HatchStyle(hatch_style),
36 aspose.pydrawing.Color.black, aspose.pydrawing.Color.white))
37
38 # Calculate the displacement not to go beyond the page bounds
39 x = square_side
40 y = 0
41 if sum_x >= width:
42 x = -(sum_x - square_side)
43 y += square_side
44 # Translate the current graphics state
45 document.translate(x, y)
46 # Fill the pattern square
47 document.fill(path)
48 # Set the stroke
49 document.set_stroke(pen)
50 # Draw the square outline
51 document.draw(path)
52
53 # Calculate the distance from X0
54 if sum_x >= width:
55 sum_x = square_side
56 else:
57 sum_x += x
58 hatch_style += 1
59
60 # Restore the graphics state
61 document.write_graphics_restore()
62
63 # Fill the text with the hatch pattern
64 brush = aspose.pydrawing.drawing2d.HatchBrush(aspose.pydrawing.drawing2d.HatchStyle.DIAGONAL_CROSS,
65 aspose.pydrawing.Color.red, aspose.pydrawing.Color.yellow)
66 font = ExternalFontCache.fetch_dr_font("Arial", 96, aspose.pydrawing.FontStyle.BOLD)
67 document.fill_and_stroke_text("ABC", font, 200, 300, brush, pen)
68
69 # Outline text with the hatch pattern
70 brush = aspose.pydrawing.drawing2d.HatchBrush(aspose.pydrawing.drawing2d.HatchStyle.PERCENT50,
71 aspose.pydrawing.Color.blue, aspose.pydrawing.Color.white)
72 document.outline_text("ABC", font, 200, 400, GraphicsFactory.create_pen_by_brush_and_width(brush, 5))
73
74
75 # Close the current page
76 document.close_page()
77
78 # Save the document
79 document.save()
Результатом виконання цього коду є
Ви можете завантажити приклади і файли даних з GitHub.