Lavorare con le clip nei file PS | Java

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 Java può essere assegnato in tre modi:

Al momento, la libreria Aspose.Page per Java offre il primo e il secondo metodo di ritaglio. Nell’esempio seguente, otteniamo una forma circolare come tracciato di ritaglio e ritagliamo un rettangolo riempito di blu nello stesso stato grafico.

Per aggiungere una clip al nuovo PsDocument con la libreria Aspose.Page per Java, 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 java.awt.geom.Ellipse2D).
  6. Imposta una clip con questo percorso.
  7. Imposta un colore sullo stato grafico corrente del PsDocument.
  8. Riempiamo il percorso rettangolare con il colore corrente. 9. Esci dallo stato grafico corrente e torna al livello superiore.
  9. Trasla al posto 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.
 2String outputFileName = "ApplyClipByShape_outPS.ps";
 3
 4//Create save options with A4 size
 5PsSaveOptions options = new PsSaveOptions();
 6
 7// Create new 1-paged PS Document
 8PsDocument document = new PsDocument(getOutputDir() + outputFileName, options, false);
 9
10//Create graphics path from the rectangle
11GeneralPath rectanglePath = new GeneralPath();
12rectanglePath.append(new Rectangle2D.Float(0, 0, 300, 200), false);
13
14////////////////////////////////////// Clipping by shape ///////////////////////////////
15
16//Save graphics state in order to return back to this state after transformation
17document.writeGraphicsSave();
18
19//Displace current graphics state on 100 points to the right and 100 points to the bottom.
20document.translate(100, 100);
21
22//Create graphics path from the circle
23GeneralPath circlePath = new GeneralPath();
24circlePath.append(new Ellipse2D.Float(50, 0, 200, 200), false);
25
26//Add clipping by circle to the current graphics state
27document.clip(circlePath);
28
29//Set paint in the current graphics state
30document.setPaint(Color.BLUE);
31
32//Fill the rectangle in the current graphics state (with clipping)
33document.fill(rectanglePath);
34
35//Restore graphics state to the previous (upper) level
36document.writeGraphicsRestore();
37
38//Displace upper level graphics state on 100 points to the right and 100 points to the bottom.
39document.translate(100, 100);
40
41//Create dashed stroke similar to Pen with DashStyle.Dash
42float[] dash = new float[] { 5.0f };
43BasicStroke stroke = new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f);
44
45document.setStroke(stroke);
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();

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

Il risultato dell’esecuzione di questo codice viene visualizzato come

Clipping

Nel prossimo esempio, otteniamo un font utilizzato per ritagliare 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 Java, in questo esempio seguiamo i seguenti passaggi:

  1. Creare un flusso di output per il file PS risultante. 2. Crea l’oggetto PsSaveOptions con le 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 il testo e il 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 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 text in PS document.
 2String outputFileName = "ApplyClipByText_outPS.ps";
 3
 4//Create save options with A4 size
 5PsSaveOptions options = new PsSaveOptions();
 6
 7// Create new 1-paged PS Document
 8PsDocument document = new PsDocument(getOutputDir() + outputFileName, options, false);
 9
10//Create graphics path from the rectangle
11GeneralPath rectanglePath = new GeneralPath();
12rectanglePath.append(new Rectangle2D.Float(0, 0, 300, 200), false);
13
14//Save graphics state in order to return back to this state after transformation
15document.writeGraphicsSave();
16
17//Displace current graphics state on 100 points to the right and 100 points to the bottom.
18document.translate(100, 100);
19
20float[] dash = new float[] { 5.0f };
21BasicStroke stroke = new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f);
22
23int fontSize = 120;
24Font font = new Font("Arial", Font.BOLD, fontSize);
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(Color.BLUE);
31
32document.fill(rectanglePath);
33
34document.writeGraphicsRestore();
35
36document.translate(100, 100);
37
38//Set paint in the current graphics state
39document.setPaint(Color.BLUE);
40
41document.setStroke(stroke);
42//Draw the rectangle in the current graphics state (has no clipping) above clipped rectangle
43document.draw(rectanglePath);
44
45//Close current page
46document.closePage();
47
48//Save the document
49document.save();

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

Il risultato dell’esecuzione di questo codice appare 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.