Arbeiten mit Schraffurmustern in PS-Dateien | Python
Schraffurmuster im PS-Dokument hinzufügen
Schraffurmuster, die oft aus einfachen Schwarzweißbildern mit verschiedenen Schraffurdesigns bestehen, dienen als Texturkachelmuster. In Aspose.Page für Python über .NET werden diese Muster durch die Klasse aspose.pydrawing.drawing2d.HatchBrush dargestellt, die von aspose.pydrawing.Brush abgeleitet ist. Im Gegensatz zu aspose.pydrawing.TextureBrush bietet HatchBrush benannte vordefinierte Stile, die das für die Kachelung verwendete Bild definieren. Aspose.Page für Python bietet 53 Schraffurstile, die alle zum Füllen oder Strichen in PsDocument verwendet werden können.
Um Grafikobjekte mit einem Schraffurmuster zu malen, erstellen Sie einen HatchBrush mit dem gewünschten Schraffurstil und übergeben Sie ihn an set_paint() oder eine der Methoden fill_text() oder fill_and_Stroke_text(), die * akzeptieren. aspose.pydrawing.Brush*.
Um Grafikobjekte mit einem Schraffurmuster zu umreißen, legen Sie das Schraffurmuster als aktuelle Farbe in PsDocument fest, erstellen Sie einen neuen aspose.pydrawing.Pen und übergeben Sie ihn an set_Stroke() oder einen der * *outline_text()**- oder fill_and_Stroke_text()-Methoden, die aspose.pydrawing.Pen akzeptieren.
Das folgende Beispiel zeigt das Füllen einer Form mit einem Schraffurmuster, die Darstellung verschiedener Schraffurstile in Python sowie das Füllen und Umreißen von Text mit einem Schraffurmuster.
Hier ist der Algorithmus zum Malen von Grafikobjekten mit einem Schraffurmuster in einem neuen PS-Dokument:
- Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
- Initiieren Sie PsSaveOptions.
- Erstellen Sie ein PsDocument mit dem bereits erstellten Ausgabestream und den Speicheroptionen.
- Erstellen Sie die Form oder Schriftart abhängig davon, welches Objekt wir füllen oder umreißen möchten.
- Erstellen Sie ein Objekt von aspose.pydrawing.drawing2d.HatchBrush mit dem gewünschten Stil.
- Legen Sie die Schraffurfarbe als aktuelle Farbe im PsDocument fest
- Füllen Sie die Form mit der aktuellen Farbe oder füllen Sie den Text. Wenn wir eine der Methoden zum Füllen des Textes verwenden, die aspose.pydrawing.Brush als Parameter akzeptiert, kann der vorherige Schritt übersprungen werden.
- Schließen Sie die Seite.
- Speichern Sie das Dokument.
Wenn wir anstelle der letzten 4 Schritte Grafikobjekte mit einem Schraffurmuster streichen (umranden) müssen, sehen sie wie folgt aus:
- Legen Sie die Schraffurfarbe als aktuelle Farbe in PsDocument fest.
- Erstellen Sie das Objekt aspose.pydrawing.Pen.
- Legen Sie diesen Strich als aktuellen Strich in PsDocument fest.
- Umreißen Sie die Form mit der aktuellen Farbe und dem aktuellen Strich oder umreißen Sie den Text. Wenn wir eine der Methoden zum Umreißen des Textes verwenden, die aspose.pydrawing.Pen als Parameter akzeptiert, kann der vorherige Schritt ignoriert werden.
- Schließen Sie die Seite.
- Speichern Sie das Dokument.
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()
Weitere Informationen finden Sie unter „Arbeiten mit einem Schraffurmuster im PS-Dokument“ in .NET, Java.
Das Ergebnis der Ausführung dieses Codes ist
Sie können Beispiele und Datendateien herunterladen von GitHub.