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:

  1. Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
  2. Initiieren Sie PsSaveOptions.
  3. Erstellen Sie ein PsDocument mit dem bereits erstellten Ausgabestream und den Speicheroptionen.
  4. Erstellen Sie die Form oder Schriftart abhängig davon, welches Objekt wir füllen oder umreißen möchten.
  5. Erstellen Sie ein Objekt von aspose.pydrawing.drawing2d.HatchBrush mit dem gewünschten Stil.
  6. Legen Sie die Schraffurfarbe als aktuelle Farbe im PsDocument fest
  7. 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.
  8. Schließen Sie die Seite.
  9. Speichern Sie das Dokument.

Wenn wir anstelle der letzten 4 Schritte Grafikobjekte mit einem Schraffurmuster streichen (umranden) müssen, sehen sie wie folgt aus:

  1. Legen Sie die Schraffurfarbe als aktuelle Farbe in PsDocument fest.
  2. Erstellen Sie das Objekt aspose.pydrawing.Pen.
  3. Legen Sie diesen Strich als aktuellen Strich in PsDocument fest.
  4. 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.
  5. Schließen Sie die Seite.
  6. 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

Schraffurmuster hinzufügen

Sie können Beispiele und Datendateien herunterladen von GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.