Trabajar con clips en archivos PS| Java

Contents
[ Hide Show ]

Agregar clip en documento PS

Un clip en un documento PS es una ruta que limita el contenido del estado gráfico actual que se mostrará en el visor o editor de PS. El contenido que quede fuera de los límites se cortará.

Una ruta de recorte en Java se puede asignar de tres maneras:

En este momento, la biblioteca Aspose.Page para Java ofrece la primera y la segunda forma de recorte. En el siguiente ejemplo, obtenemos una forma de círculo como trazado de recorte y cortamos un rectángulo relleno de azul en el mismo estado de gráfico.

Para agregar un clip al nuevo PsDocument con la biblioteca Aspose.Page para Java en este ejemplo, realizamos los siguientes pasos:

  1. Cree una secuencia de salida para el archivo PS resultante.
  2. Cree el objeto PsSaveOptions con opciones predeterminadas.
  3. Cree un PsDocument de 1 página con un flujo de salida ya creado y opciones para guardar.
  4. Cree un nuevo estado de gráficos.
  5. Cree una forma de círculo (java.awt.geom.Ellipse2D objeto).
  6. Establezca un clip con esta ruta.
  7. Establezca una pintura en el estado de gráficos actual de PsDocument.
  8. Rellena el trazado del rectángulo con la pintura actual.
  9. Salga del estado de gráficos actual al nivel uno superior.
  10. Traduzca al lugar del rectángulo relleno.
  11. Traza con una línea discontinua los límites del mismo rectángulo encima del relleno para mostrar los límites del rectángulo relleno recortado.
  12. Cierra la página.
  13. Guarde el 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();

Vea cómo trabajar con clips en documentos PS en .NET.

El resultado de ejecutar este código aparece como

Recorte

En el siguiente ejemplo, obtenemos una fuente utilizada para recortar un rectángulo relleno de azul con el contorno del texto.

Para agregar un recorte por texto al nuevo PsDocument con la biblioteca Aspose.Page para Java en este ejemplo, realizamos los siguientes pasos:

  1. Cree una secuencia de salida para el archivo PS resultante.
  2. Cree el objeto PsSaveOptions con opciones predeterminadas.
  3. Cree un PsDocument de 1 página con un flujo de salida ya creado y opciones para guardar.
  4. Cree un nuevo estado de gráficos.
  5. Crea una fuente.
  6. Establece un clip con el texto y la fuente.
  7. Establezca una pintura en el estado de gráficos actual de PsDocument.
  8. Rellena el trazado del rectángulo con la pintura actual.
  9. Salga del estado de gráficos actual al nivel uno superior.
  10. Traduzca al lugar del rectángulo relleno.
  11. Traza con una línea discontinua los límites del mismo rectángulo encima del relleno para mostrar los límites del rectángulo relleno recortado.
  12. Cierra la página.
  13. Guarde el 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();

Vea cómo trabajar con clips en documentos PS en .NET.

El resultado de ejecutar este código aparece como

RecortePorTexto

Puede descargar ejemplos y archivos de datos desde GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.