Trabalhar com Clipes em Ficheiro PS | Python

Contents
[ Hide Show ]

Adicionar Clip em Documento PS

Num documento PS, um clipe é um limite definido por um caminho que restringe a visibilidade do conteúdo dentro do estado gráfico atual nos visualizadores ou editores PS. Qualquer conteúdo que se estenda para além deste limite será truncado.

Em Python, os caminhos de recorte podem ser atribuídos de três formas:

Atualmente, a biblioteca Aspose.Page para Python via .NET suporta o primeiro e o segundo método de recorte. No exemplo abaixo, criámos uma forma circular como caminho de recorte e utilizámo-la para recortar um retângulo preenchido a azul dentro do mesmo estado gráfico.

No exemplo abaixo, obtemos uma forma circular como caminho de recorte e recortamos um retângulo preenchido a azul no mesmo estado gráfico.

Para adicionar um clip ao novo PsDocument com o Aspose.Page para Python através da biblioteca .NET, neste exemplo, seguimos os seguintes passos:

  1. Crie um fluxo de saída para o ficheiro PS resultante.
  2. Crie um objeto PsSaveOptions com as opções padrão.
  3. Crie um PsDocument de 1 página com um fluxo de saída já criado e opções de guardar.
  4. Crie um novo estado gráfico.
  5. Crie uma forma circular (objeto aspose.pydrawing.GraphicsPath).
  6. Defina um clipe com este percurso.
  7. Defina uma pintura para o estado gráfico atual do PsDocument.
  8. Preencha o percurso do retângulo com a tinta atual.
  9. Saia do estado gráfico atual para o nível superior.
  10. Transfira para o local do retângulo preenchido.
  11. Trace com uma linha tracejada os limites do mesmo retângulo acima do preenchido para mostrar os limites do retângulo preenchido recortado.
  12. Feche a página.
  13. Guarde o documento.
 1# Create an output stream for PostScript document
 2with open(data_dir + "Clipping_outPS.ps", "wb") as out_ps_stream:
 3    # Create the save options with default values
 4    options = PsSaveOptions()
 5    
 6    # Create new 1-paged PS Document
 7    document = PsDocument(out_ps_stream, options, False)
 8    
 9    # Create a graphics path from the rectangle
10    rectange_path = aspose.pydrawing.drawing2d.GraphicsPath()
11    rectange_path.add_rectangle(aspose.pydrawing.RectangleF(0, 0, 300, 200))
12    
13    ##################################### Clipping by the shape //////////////////////////////////////////////////////////////////////
14    
15    # Save the graphics state in order to return back to this state after the transformation
16    document.write_graphics_save()
17    
18    # Displace the current graphics state on 100 points to the right and 100 points to the bottom.
19    document.translate(100, 100)
20    
21    # Create a graphics path from the circle
22    circle_path = aspose.pydrawing.drawing2d.GraphicsPath()
23    circle_path.add_ellipse(aspose.pydrawing.RectangleF(50, 0, 200, 200))
24    
25    # Add clipping by circle to the current graphics state
26    document.clip(circle_path)
27    
28    # Set the paint in the current graphics state
29    document.set_paint(aspose.pydrawing.SolidBrush(aspose.pydrawing.Color.blue))
30    
31    # Fill the rectangle in the current graphics state (with clipping)
32    document.fill(rectange_path)
33    
34    # Restore the graphics state to the previus (upper) level
35    document.write_graphics_restore()
36    
37    # Displace the upper level graphics state on 100 points to the right and 100 points to the bottom.
38    document.translate(100, 100)
39    
40    pen = aspose.pydrawing.Pen(aspose.pydrawing.SolidBrush(aspose.pydrawing.Color.blue))
41    pen.width = float(2)
42    pen.dash_style = aspose.pydrawing.drawing2d.DashStyle.DASH
43    
44    document.set_stroke(pen)
45    
46    # Draw the rectangle in the current graphics state (has no clipping) above clipped rectangle
47    document.draw(rectange_path)
48    
49    ########################################################################################################################
50    
51    # Close the current page
52    document.close_page()
53    
54    # Save the document
55    document.save()

Veja como trabalhar com clips em documentos PS em . NET, Java.

O resultado da execução deste código é

Clipping

Pode descarregar exemplos e ficheiros de dados do GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.