Arbeiten mit Clips in PS-Datei| Python

Contents
[ Hide Show ]

Clip im PS-Dokument hinzufügen

In einem PS-Dokument ist ein Clip eine durch einen Pfad definierte Grenze, die die Sichtbarkeit von Inhalten innerhalb des aktuellen Grafikstatus in PS-Viewern oder -Editoren einschränkt. Alle Inhalte, die über diese Grenze hinausgehen, werden abgeschnitten.

In Python können Beschneidungspfade auf drei Arten zugewiesen werden:

Derzeit unterstützt die Aspose.Page for Python via .NET-Bibliothek die erste und zweite Methode des Ausschneidens. Im folgenden Beispiel erstellen wir eine kreisförmige Form als Beschneidungspfad und verwenden diese, um ein blau gefülltes Rechteck innerhalb desselben Grafikstatus auszuschneiden.

Im folgenden Beispiel erhalten wir eine Kreisform als Beschneidungspfad und schneiden im gleichen Grafikzustand ein blau gefülltes Rechteck ab.

Um in diesem Beispiel einen Clip zum neuen PsDocument mit Aspose.Page für Python über die .NET-Bibliothek hinzuzufügen, führen wir die folgenden Schritte aus:

  1. Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
  2. Erstellen Sie ein PsSaveOptions-Objekt mit den Standardoptionen.
  3. Erstellen Sie ein einseitiges PsDocument mit einem bereits erstellten Ausgabestream und Speicheroptionen.
  4. Erstellen Sie einen neuen Grafikstatus.
  5. Erstellen Sie eine Kreisform (Objekt aspose.pydrawing.GraphicsPath).
  6. Legen Sie einen Clip mit diesem Pfad fest.
  7. Stellen Sie einen Paint auf den aktuellen Grafikstatus von PsDocument ein.
  8. Füllen Sie den Rechteckpfad mit der aktuellen Farbe.
  9. Verlassen Sie den aktuellen Grafikstatus zur oberen Ebene.
  10. Übertragen Sie es an die Stelle des gefüllten Rechtecks.
  11. Zeichnen Sie mit einer gestrichelten Linie die Grenzen desselben Rechtecks ​​über dem gefüllten Rechteck, um die Grenzen des abgeschnittenen gefüllten Rechtecks ​​anzuzeigen.
  12. Schließen Sie die Seite.
  13. Speichern Sie das Dokument.
 1# Create an output stream for PostScript document
 2with open(data_dir + "Clipping_outPS.ps", "wb") as out_ps_stream:
 3    # Create the save options with default values
 4    options = PsSaveOptions()
 5    
 6    # Create new 1-paged PS Document
 7    document = PsDocument(out_ps_stream, options, False)
 8    
 9    # Create a graphics path from the rectangle
10    rectange_path = aspose.pydrawing.drawing2d.GraphicsPath()
11    rectange_path.add_rectangle(aspose.pydrawing.RectangleF(0, 0, 300, 200))
12    
13    ##################################### Clipping by the shape //////////////////////////////////////////////////////////////////////
14    
15    # Save the graphics state in order to return back to this state after the transformation
16    document.write_graphics_save()
17    
18    # Displace the current graphics state on 100 points to the right and 100 points to the bottom.
19    document.translate(100, 100)
20    
21    # Create a graphics path from the circle
22    circle_path = aspose.pydrawing.drawing2d.GraphicsPath()
23    circle_path.add_ellipse(aspose.pydrawing.RectangleF(50, 0, 200, 200))
24    
25    # Add clipping by circle to the current graphics state
26    document.clip(circle_path)
27    
28    # Set the paint in the current graphics state
29    document.set_paint(aspose.pydrawing.SolidBrush(aspose.pydrawing.Color.blue))
30    
31    # Fill the rectangle in the current graphics state (with clipping)
32    document.fill(rectange_path)
33    
34    # Restore the graphics state to the previus (upper) level
35    document.write_graphics_restore()
36    
37    # Displace the upper level graphics state on 100 points to the right and 100 points to the bottom.
38    document.translate(100, 100)
39    
40    pen = aspose.pydrawing.Pen(aspose.pydrawing.SolidBrush(aspose.pydrawing.Color.blue))
41    pen.width = float(2)
42    pen.dash_style = aspose.pydrawing.drawing2d.DashStyle.DASH
43    
44    document.set_stroke(pen)
45    
46    # Draw the rectangle in the current graphics state (has no clipping) above clipped rectangle
47    document.draw(rectange_path)
48    
49    ########################################################################################################################
50    
51    # Close the current page
52    document.close_page()
53    
54    # Save the document
55    document.save()

Weitere Informationen finden Sie unter Arbeiten mit Clips in PS-Dokumenten in .NET, Java.

Das Ergebnis der Ausführung dieses Codes ist

Ausschnitt

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.