Trabajar con patrones de sombreado en un archivo PS | Pitón

Agregar patrón de sombreado en documento PS

Los patrones de sombreado, que a menudo comprenden imágenes simples en blanco y negro con varios diseños de sombreado, sirven como patrones de mosaico de textura. En Aspose.Page para Python vía .NET, estos patrones están representados por la clase aspose.pydrawing.drawing2d.HatchBrush, derivada de aspose.pydrawing.Brush. A diferencia de aspose.pydrawing.TextureBrush, HatchBrush ofrece estilos predefinidos con nombre, que definen la imagen utilizada para el mosaico. Aspose.Page para Python proporciona 53 estilos de sombreado, todos los cuales se pueden utilizar para rellenar o trazar en PsDocument.

Para pintar objetos gráficos con un patrón de sombreado, cree un HatchBrush con el estilo de sombreado deseado y páselo a set_paint() o a uno de los métodos fill_text() o fill_and_stroke_text() aceptando * aspose.pydrawing.Brush*.

Para delinear objetos gráficos con un patrón de sombreado, establezca el patrón de sombreado como la pintura actual en PsDocument, cree un nuevo aspose.pydrawing.Pen y páselo a set_stroke() o uno de los * outline_text()* o fill_and_stroke_text() métodos que aceptan aspose.pydrawing.Pen.

El siguiente ejemplo muestra cómo rellenar una forma con un patrón de sombreado, muestra varios estilos de sombreado en Python y cómo rellenar y delinear texto con un patrón de sombreado.

Este es el algoritmo para pintar objetos gráficos con un patrón de sombreado en un nuevo documento PS:

  1. Cree una secuencia de salida para el archivo PS resultante.
  2. Inicie PsSaveOptions.
  3. Cree un PsDocument con el flujo de salida ya creado y las opciones de guardado.
  4. Crea la forma o una fuente dependiendo del objeto que vamos a rellenar o delinear.
  5. Cree un objeto de aspose.pydrawing.drawing2d.HatchBrush 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 el texto. Si utilizamos uno de los métodos para rellenar el texto que acepta aspose.pydrawing.Brush como parámetro, se puede omitir el paso 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 pasos, tendremos el siguiente aspecto:

  1. Establezca la pintura del sombreado como pintura actual en PsDocument.
  2. Cree el objeto aspose.pydrawing.Pen.
  3. Establezca este trazo como trazo actual en PsDocument.
  4. Delinee la forma con la pintura actual y trace o delinee el texto. Si utilizamos uno de los métodos para delinear el texto que acepta aspose.pydrawing.Pen como parámetro, se puede ignorar el paso anterior.
  5. Cierra la página.
  6. Guarde el documento.
 1# The path to the documents directory.
 2data_dir = Util.get_data_dir_working_with_hatches()
 3
 4# Create an output stream for the PostScript document
 5with open(data_dir + "AddHatchPattern_outPS.ps", "wb") as out_ps_stream:
 6    # Create the save options with A4 size
 7    options = PsSaveOptions()
 8    
 9    # Create a new 1-paged PS Document
10    document = PsDocument(out_ps_stream, options, False)
11    
12    x0 = 20.
13    y0 = 100.
14    square_side = 32.
15    width = 500.
16    sum_x = 0.
17    
18    # Restore a graphics state
19    document.write_graphics_save()
20    
21    # Translate to initial point
22    document.translate(x0, y0)
23    
24    # Create a rectngle path for every pattern square
25    path = aspose.pydrawing.drawing2d.GraphicsPath()
26    path.add_rectangle(aspose.pydrawing.RectangleF(0, 0, square_side, square_side))
27    
28    # Create a pen for outlining the pattern square
29    pen = GraphicsFactory.create_pen_by_color_and_width(aspose.pydrawing.Color.black, 2)
30    
31    # For every hatch pattern style 
32    hatch_style = 0
33    while hatch_style <= 52:
34        # Set the paint with the current hatch brush style
35        document.set_paint(aspose.pydrawing.drawing2d.HatchBrush(aspose.pydrawing.drawing2d.HatchStyle(hatch_style),
36            aspose.pydrawing.Color.black, aspose.pydrawing.Color.white))
37        
38        # Calculate the displacement not to go beyond the page bounds
39        x = square_side
40        y = 0
41        if sum_x >= width:
42            x = -(sum_x - square_side)
43            y += square_side
44        # Translate the current graphics state
45        document.translate(x, y)
46        # Fill the pattern square
47        document.fill(path)
48        # Set the stroke
49        document.set_stroke(pen)
50        # Draw the square outline
51        document.draw(path)
52        
53        # Calculate the distance from X0
54        if sum_x >= width:
55            sum_x = square_side
56        else:
57            sum_x += x
58        hatch_style += 1
59    
60    # Restore the graphics state
61    document.write_graphics_restore()
62    
63    # Fill the text with the hatch pattern
64    brush = aspose.pydrawing.drawing2d.HatchBrush(aspose.pydrawing.drawing2d.HatchStyle.DIAGONAL_CROSS,
65    aspose.pydrawing.Color.red, aspose.pydrawing.Color.yellow)
66    font = ExternalFontCache.fetch_dr_font("Arial", 96, aspose.pydrawing.FontStyle.BOLD)
67    document.fill_and_stroke_text("ABC", font, 200, 300, brush, pen)
68    
69    # Outline text with the hatch pattern
70    brush = aspose.pydrawing.drawing2d.HatchBrush(aspose.pydrawing.drawing2d.HatchStyle.PERCENT50,
71    aspose.pydrawing.Color.blue, aspose.pydrawing.Color.white)
72    document.outline_text("ABC", font, 200, 400, GraphicsFactory.create_pen_by_brush_and_width(brush, 5))
73    
74    
75    # Close the current page
76    document.close_page()
77    
78    # Save the document
79    document.save()

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

El resultado de ejecutar este código es

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.