Lavorare con le clip in PostScript | .NET

Aggiungi clip in un documento PS

Una clip in un documento PS è un tracciato che delimita il contenuto dello stato grafico corrente che verrà visualizzato nel visualizzatore o nell’editor PS. Il contenuto che rimane oltre i limiti verrà tagliato.

Un tracciato di ritaglio in .NET può essere assegnato in tre modi:

Al momento, la libreria Aspose.Page per .NET offre il primo e il secondo metodo di ritaglio. Nell’esempio seguente, otteniamo un cerchio System.Drawing.Drawing2D.GraphicsPath da un rettangolo come tracciato di ritaglio e tagliamo un rettangolo riempito di blu nello stesso stato grafico.

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

  1. Creiamo un flusso di output per il file PS risultante.
  2. Creiamo l’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 un cerchio System.Drawing.Drawing2D.GraphicsPath dal rettangolo.
  6. Impostamo una clip con questo percorso.
  7. Impostamo un’immagine sullo stato grafico corrente di PsDocument. 8. Riempi il tracciato del rettangolo con il colore corrente.
  8. Esci dallo stato grafico corrente e torna al 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// Demonstrates clipping by shape and clipping by text in PS document.
 2
 3string outputFileName = "ApplyClipByShape_outPS.ps";
 4
 5//Create save options with A4 size
 6PsSaveOptions options = new PsSaveOptions();
 7
 8// Create new 1-paged PS Document
 9PsDocument document = new PsDocument(OutputDir + outputFileName, options, false);
10
11//Create graphics path from the rectangle
12GraphicsPath rectanglePath = new GraphicsPath();
13rectanglePath.AddRectangle(new RectangleF(0, 0, 300, 200));
14
15////////////////////////////////////// Clipping by shape //////////////////////////////////////////////////////////////////////
16
17//Save graphics state in order to return back to this state after transformation
18document.WriteGraphicsSave();
19
20//Displace current graphics state on 100 points to the right and 100 points to the bottom.
21document.Translate(100, 100);
22
23//Create graphics path from the circle
24GraphicsPath circlePath = new GraphicsPath();
25circlePath.AddEllipse(new RectangleF(50, 0, 200, 200));
26
27//Add clipping by circle to the current graphics state
28document.Clip(circlePath);
29
30//Set paint in the current graphics state
31document.SetPaint(new SolidBrush(Color.Blue));
32
33//Fill the rectangle in the current graphics state (with clipping)
34document.Fill(rectanglePath);
35
36//Restore graphics state to the previus (upper) level
37document.WriteGraphicsRestore();
38
39//Displace upper level graphics state on 100 points to the right and 100 points to the bottom.
40document.Translate(100, 100);
41
42Pen pen = new Pen(new SolidBrush(Color.Blue), 2);
43pen.DashStyle = DashStyle.Dash;
44
45document.SetStroke(pen);
46
47//Draw the rectangle in the current graphics state (has no clipping) above clipped rectangle
48document.Draw(rectanglePath);
49
50//Close current page
51document.ClosePage();
52
53//Save the document
54document.Save();

Per Linux, macOS e altri sistemi operativi non Windows, offriamo l’utilizzo del nostro pacchetto Nuget Aspose.Page.Drawing. Utilizza il backend Aspose.Drawing invece della libreria di sistema System.Drawing.

Quindi, importate lo spazio dei nomi Aspose.Page.Drawing invece di quello System.Drawing. Nel frammento di codice sopra riportato verrà utilizzato Aspose.Page.Drawing.Rectangle invece di System.Drawing.Rectangle, Aspose.Page.Drawing.Drawing2D.GraphicsPath invece di System.Drawing.Drawing2D.GraphicsPath e così via. I nostri esempi di codice su GitHub contengono tutte le sostituzioni necessarie.

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

Il risultato dell’esecuzione di questo codice viene visualizzato come

Clipping

Nel prossimo esempio, otteniamo un font che ritaglia un rettangolo riempito di blu con il contorno del testo.

Per aggiungere un ritaglio di testo al nuovo PsDocument con la libreria Aspose.Page per .NET, in questo esempio seguiamo i seguenti passaggi:

  1. Creare un flusso di output per il file PS risultante. 2. Crea un oggetto PsSaveOptions con opzioni predefinite.
  2. Crea un PsDocument a pagina singola con un flusso di output già creato e opzioni di salvataggio.
  3. Crea un nuovo stato grafico.
  4. Crea un font.
  5. Imposta un ritaglio con testo e font.
  6. Imposta un colore sullo stato grafico corrente del PsDocument.
  7. Riempi il percorso del rettangolo con il colore corrente.
  8. Esci dallo stato grafico corrente e passa 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// Demonstrates clipping by text in PS document.
 2
 3string outputFileName = "ApplyClipByText_outPS.ps";
 4
 5//Create save options with A4 size
 6PsSaveOptions options = new PsSaveOptions();
 7
 8// Create new 1-paged PS Document
 9PsDocument document = new PsDocument(OutputDir + outputFileName, options, false);
10
11//Create graphics path from the rectangle
12GraphicsPath rectanglePath = new GraphicsPath();
13rectanglePath.AddRectangle(new RectangleF(0, 0, 300, 200));
14
15//Save graphics state in order to return back to this state after transformation
16document.WriteGraphicsSave();
17
18//Displace current graphics state on 100 points to the right and 100 points to the bottom.
19document.Translate(100, 100);
20
21Pen pen = new Pen(new SolidBrush(Color.Blue), 2);
22pen.DashStyle = DashStyle.Dash;
23int fontSize = 120;
24System.Drawing.Font font = new System.Drawing.Font("Arial", fontSize, FontStyle.Bold);
25
26//Clip rectangle by text's outline
27document.ClipText("ABC", font, 20, fontSize + 10);
28
29//Set paint in the current graphics state
30document.SetPaint(new SolidBrush(Color.Blue));
31
32document.Fill(rectanglePath);
33
34document.WriteGraphicsRestore();
35
36document.Translate(100, 100);
37
38document.SetStroke(pen);
39//Draw the rectangle in the current graphics state (has no clipping) above clipped rectangle
40document.Draw(rectanglePath);
41
42//Close current page
43document.ClosePage();
44
45//Save the document
46document.Save();

Per Linux, macOS e altri sistemi operativi non Windows, offriamo l’utilizzo del nostro pacchetto Nuget Aspose.Page.Drawing. Utilizza il backend Aspose.Drawing invece della libreria di sistema System.Drawing.

Quindi, importiamo lo spazio dei nomi Aspose.Page.Drawing invece di quello System.Drawing. Nel frammento di codice sopra riportato verrà utilizzato Aspose.Page.Drawing.Rectangle invece di System.Drawing.Rectangle, verrà utilizzato Aspose.Page.Drawing.Drawing2D.GraphicsPath invece di System.Drawing.Drawing2D.GraphicsPath e così via. I nostri esempi di codice su GitHub contengono tutte le sostituzioni necessarie.

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


Il risultato dell’esecuzione di questo codice viene visualizzato come

ClippingByText

Puoi 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.