Lavorare con le clip in un file PS | Python

Aggiungi ritaglio in un documento PS

In un documento PS, un ritaglio è un limite definito da un percorso che limita la visibilità del contenuto all’interno dello stato grafico corrente nei visualizzatori o negli editor PS. Qualsiasi contenuto che si estenda oltre questo limite verrà troncato.

In Python, i tracciati di ritaglio possono essere assegnati in tre modi:

Attualmente, la libreria Aspose.Page per Python tramite .NET supporta il primo e il secondo metodo di ritaglio. Nell’esempio seguente, creiamo una forma circolare come tracciato di ritaglio e la utilizziamo per ritagliare un rettangolo con riempimento blu all’interno dello stesso stato grafico.

Nell’esempio seguente otteniamo una forma circolare come tracciato di ritaglio e ritagliamo un rettangolo con riempimento blu nello stesso stato grafico.

Per aggiungere una clip al nuovo PsDocument con Aspose.Page per Python tramite la libreria .NET, in questo esempio seguiamo i seguenti passaggi:

  1. Creiamo un flusso di output per il file PS risultante.
  2. Creiamo un oggetto PsSaveOptions con le opzioni predefinite.
  3. Creiamo un PsDocument a pagina singola con un flusso di output già creato e opzioni di salvataggio.
  4. Creiamo un nuovo stato grafico.
  5. Creiamo una forma circolare (oggetto aspose.pydrawing.GraphicsPath).
  6. Impostamo una clip con questo percorso.
  7. Impostamo un’immagine sullo stato grafico corrente del PsDocument. 8. Riempi il tracciato del rettangolo con il colore corrente.
  8. Esci dallo stato grafico corrente e torna a quello di livello superiore.
  9. Trasla nella posizione del rettangolo riempito.
  10. Traccia con una linea tratteggiata i limiti dello stesso rettangolo sopra quello riempito per mostrare i limiti del rettangolo riempito ritagliato.
  11. Chiudi la pagina.
  12. Salva il documento.
 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()

Vedi come lavorare con le clip nei documenti PS in .NET, Java.

Il risultato dell’esecuzione di questo codice è

Clipping

È possibile scaricare esempi e file di dati da GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.