Trabajar con patrones de sombreado en un archivo PS | Java

Agregar patrón de sombreado en documento PS

El patrón de sombreado es un patrón de mosaico de textura generalmente representado por una pequeña imagen simple de 2 colores (generalmente blanco y negro). El contenido principal de estas pequeñas imágenes son varios sombreados.

La plataforma Java no tiene una clase separada para pintar formas y texto con sombreados. Sin embargo, la biblioteca Aspose.Page para Java ofrece com.aspose.eps.HatchPaintLibrary clase que brinda la posibilidad de crear java.awt.TexturePaint lleno de sombreados definidos por uno de los 55 estilos ofrecidos por com.aspose.eps.HatchStyle.

Para pintar objetos gráficos con un patrón de sombreado en la biblioteca Aspose.Page para Java, es necesario crear un sombreado java.awt.TexturePaint con el estilo de sombreado asignado, pasarlo a setPaint() o uno de los métodos fillText() o fillAndStrokeText() que aceptan java.awt.Paint como parámetro.

Para delinear objetos gráficos con un patrón de sombreado en Aspose.Page para la biblioteca Java, alguien debe establecer el patrón de sombreado como pintura actual en PsDocument, crear un nuevo java.awt.BasicStroke y pasarlo a * setStroke()* o uno de los métodos outlineText() o fillAndStrokeText() que aceptan java.awt.Stroke como parámetro.

En el siguiente ejemplo, demostramos, en primer lugar, cómo rellenar una forma con un patrón de sombreado, luego toda la variedad de estilos de sombreado en Java y, finalmente, cómo rellenar y delinear un texto con un patrón de sombreado.

Un algoritmo para pintar objetos gráficos con un patrón de sombreado en un nuevo documento PS incluye los siguientes pasos:

  1. Cree una secuencia de salida para el archivo PS resultante.
  2. Cree PsSaveOptions.
  3. Cree PsDocument con el flujo de salida ya creado y las opciones de guardado.
  4. Crea la forma o fuente dependiendo del objeto que vamos a rellenar o delinear.
  5. Cree con com.aspose.eps.HatchPaintLibrary un objeto de java.awt.TexturePaint con el estilo deseado.
  6. Establezca la pintura del sombreado como pintura actual en PsDocument.
  7. Rellena la forma con la pintura actual o rellena un texto. Si utilizamos uno de los métodos para rellenar un texto que acepta java.awt.Paint como parámetro, se puede ignorar el punto anterior.
  8. Cierra la página.
  9. Guarde el documento.

Si necesitamos trazar (delinear) objetos gráficos con un patrón de sombreado en lugar de los últimos 4 puntos, lo siguiente será:

  1. Establezca la pintura del sombreado como pintura actual en PsDocument.

  2. Cree el objeto java.awt.BasicStroke.

  3. Establezca este trazo como trazo actual en PsDocument.

  4. Delinea la forma con la pintura actual y traza o delinea el texto. Si utilizamos uno de los métodos para delinear el texto que acepta java.awt.Stroke como parámetro, se puede ignorar el punto anterior.

  5. Cierra la página.

  6. Guarde el documento.

 1  // Demonstrates all embedded hatch patterns that can be used to paint or outline shapes or text in PS document.
 2
 3  String outputFileName = "AddHatchPattern_outPS.ps";
 4
 5  //Create save options with A4 size
 6  PsSaveOptions options = new PsSaveOptions();
 7
 8  // Create new 1-paged PS Document
 9  PsDocument document = new PsDocument(getOutputDir() + outputFileName, options, false);
10
11  int x0 = 20;
12  int y0 = 100;
13  int squareSide = 32;
14  int width = 500;
15  int sumX = 0;
16
17//Restore graphics state
18  document.writeGraphicsSave();
19
20  //Translate to initial point
21  document.translate(x0, y0);
22  
23  //Create a square for every pattern
24  Rectangle2D.Float square = new Rectangle2D.Float(0, 0, squareSide, squareSide);
25  
26  //Create pen for outlining pattern square
27  BasicStroke stroke = new BasicStroke(2);
28  
29  HatchStyle [] hatchStyles = HatchStyle.values();
30  
31  //For every hatch pattern style 
32  for (int i = 0; i < hatchStyles.length; i++) {            
33  	//Create a hatch texture pattern by hatch style, foreground and background colors
34  	TexturePaint paint = HatchPaintLibrary.getHatchTexturePaint(hatchStyles[i], Color.BLACK, Color.WHITE);
35  	//Set paint with the current hatch pattern
36      document.setPaint(paint);
37
38      //Calculate a displacement in order to don't go beyond the page bounds
39      int x = squareSide;
40      int y = 0;
41      if (sumX >= width) {
42          x = -(sumX - squareSide);
43          y += squareSide;
44      }
45
46      //Translate current graphics state
47      document.translate(x, y);
48      //Fill pattern square
49      document.fill(square);
50
51      //Set current paint
52      document.setPaint(Color.BLACK);
53      //Set current stroke
54      document.setStroke(stroke);
55      //Draw square outline
56      document.draw(square);
57
58      //Calculate distance from X0
59      if (sumX >= width)
60          sumX = squareSide;
61      else
62          sumX += x;
63  }
64  
65  //Restore graphics state
66  document.writeGraphicsRestore();
67  
68  //Fill a text with the hatch pattern
69  TexturePaint paint = HatchPaintLibrary.getHatchTexturePaint(HatchStyle.DiagonalCross, Color.RED, Color.YELLOW);
70  Font font = new Font("Arial", Font.BOLD, 96);
71  document.fillAndStrokeText("ABC", font, 200, 320, paint, Color.BLACK, stroke);
72
73  //Outline the text with the hatch pattern
74  paint = HatchPaintLibrary.getHatchTexturePaint(HatchStyle.Percent70, Color.BLUE, Color.WHITE);
75  document.outlineText("ABC", font, 200, 420, paint, new BasicStroke(5));
76
77  //Close current page
78  document.closePage();
79
80  //Save the document
81  document.save();

Consulte cómo trabajar con un patrón de tramado en un documento PS en .NET.


El resultado de ejecutar este código aparece como

Agregar patrón de sombreado

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.