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:
da qualsiasi classe implementata java.awt.Shape che può contenere qualsiasi forma chiusa;
da un contorno di testo;
da un’immagine a 2 colori a 1 bpp (bit per pixel) come maschera stencil;
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:
- Creiamo un flusso di output per il file PS risultante.
- Creiamo un oggetto PsSaveOptions con le opzioni predefinite.
- Creiamo un PsDocument a pagina singola con un flusso di output già creato e opzioni di salvataggio.
- Creiamo un nuovo stato grafico.
- Creiamo una forma circolare (oggetto java.awt.geom.Ellipse2D).
- Imposta una clip con questo percorso.
- Imposta un colore sullo stato grafico corrente del PsDocument.
- Riempiamo il percorso rettangolare con il colore corrente. 9. Esci dallo stato grafico corrente e torna al livello superiore.
- Trasla al posto del rettangolo riempito.
- Traccia con una linea tratteggiata i limiti dello stesso rettangolo sopra quello riempito per mostrare i limiti del rettangolo riempito ritagliato.
- Chiudi la pagina.
- Salva il documento.
1//Create an output stream for the PostScript document
2FileOutputStream outPsStream = new FileOutputStream(dataDir + "Clipping_outPS.ps");
3//Create save options with A4 size
4PsSaveOptions options = new PsSaveOptions();
5
6// Create a new PS Document with the page opened
7PsDocument document = new PsDocument(outPsStream, options, false);
8
9//Create a rectangle
10Shape rectangle = new Rectangle2D.Float(0, 0, 300, 200);
11
12//Set the paint in the upper level graphics state
13document.setPaint(Color.BLUE);
14
15//Save the graphics state to return back to this state after the transformation
16document.writeGraphicsSave();
17
18//Displace the current graphics state on 100 points to the right and 100 points to the bottom.
19document.translate(100, 100);
20
21//Create a circle shape
22Shape circle = new Ellipse2D.Float(50, 0, 200, 200);
23
24//Add clipping by the circle to the current graphics state
25document.clip(circle);
26
27//Fill the rectangle in the current graphics state (with clipping)
28document.fill(rectangle);
29
30//Restore the graphics state to the previus (upper) level
31document.writeGraphicsRestore();
32
33//Displace the upper-level graphics state on 100 points to the right and 100 points to the bottom.
34document.translate(100, 100);
35
36BasicStroke stroke = new BasicStroke(2,
37 BasicStroke.CAP_BUTT,
38 BasicStroke.JOIN_MITER,
39 10.0f, new float []{5.0f}, 0.0f);
40
41document.setStroke(stroke);
42
43//Draw the rectangle in the current graphics state (has no clipping) above the clipped rectangle
44document.draw(rectangle);
45
46//Close the current page
47document.closePage();
48//Save the document
49document.save();
Vedi come lavorare con le clip nei documenti PS in .NET.
Il risultato dell’esecuzione di questo codice viene visualizzato come
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:
- Creare un flusso di output per il file PS risultante. 2. Crea l’oggetto PsSaveOptions con le opzioni predefinite.
- Crea un PsDocument a pagina singola con un flusso di output già creato e opzioni di salvataggio.
- Crea un nuovo stato grafico.
- Crea un font.
- Imposta un ritaglio con il testo e il font.
- Imposta un colore sullo stato grafico corrente del PsDocument.
- Riempi il percorso del rettangolo con il colore corrente.
- Esci dallo stato grafico corrente e passa al livello superiore.
- Trasla nella posizione del rettangolo riempito.
- Traccia con una linea tratteggiata i limiti dello stesso rettangolo sopra quello riempito per mostrare i limiti del rettangolo riempito ritagliato.
- Chiudi la pagina.
- Salva il documento.
1//Create output stream for PostScript document
2FileOutputStream outPsStream = new FileOutputStream(dataDir + "Clipping_outPS.ps");
3//Create save options with A4 size
4PsSaveOptions options = new PsSaveOptions();
5
6// Create a new PS Document with the page opened
7PsDocument document = new PsDocument(outPsStream, options, false);
8
9//Create a rectangle
10Shape rectangle = new Rectangle2D.Float(0, 0, 300, 200);
11
12//Set paint in the upper-level graphics state
13document.setPaint(Color.BLUE);
14
15//Save graphics state to return back to this state after the 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
21int fontSize = 120;
22Font font = new Font("Arial", Font.BOLD, fontSize);
23
24//Clip rectangle by text's outline
25document.clipText("ABC", font, 20, fontSize + 10);
26document.fill(rectangle);
27
28//Restore graphics state to the previous (upper) level
29document.writeGraphicsRestore();
30
31//Displace upper-level graphics state on 100 points to the right and 100 points to the bottom.
32document.translate(100, 100);
33
34BasicStroke stroke = new BasicStroke(2,
35 BasicStroke.CAP_BUTT,
36 BasicStroke.JOIN_MITER,
37 10.0f, new float []{5.0f}, 0.0f);
38
39document.setStroke(stroke);
40
41//Draw the rectangle in the current graphics state (has no clipping) above the clipped rectangle
42document.draw(rectangle);
43
44//Close the current page
45document.closePage();
46//Save the document
47document.save();
Vedi come lavorare con le clip nei documenti PS in .NET.
Il risultato dell’esecuzione di questo codice appare come
Puoi scaricare esempi e file di dati da GitHub.