Travailler avec des clips dans un fichier PS| Python

Ajouter un clip dans un document PS

Dans un document PS, un clip est une limite définie par un chemin qui restreint la visibilité du contenu dans l’état graphique actuel dans les visionneuses ou les éditeurs PS. Tout contenu dépassant cette limite sera tronqué.
En Python, les chemins de détourage peuvent être attribués de trois manières :

Actuellement, la bibliothèque Aspose.Page pour Python via .NET prend en charge les première et deuxième méthodes de découpage. Dans l’exemple ci-dessous, nous créons une forme circulaire comme chemin de détourage et l’utilisons pour découper un rectangle rempli de bleu dans le même état graphique.

Dans l’exemple ci-dessous, nous obtenons une forme de cercle comme chemin de détourage et découpons un rectangle rempli de bleu dans le même état graphique.

Afin d’ajouter un clip au nouveau PsDocument avec Aspose.Page pour Python via la bibliothèque .NET dans cet exemple, nous procédons comme suit :

  1. Créez un flux de sortie pour le fichier PS résultant.
  2. Créez un objet PsSaveOptions avec les options par défaut.
  3. Créez un PsDocument d’une page avec un flux de sortie déjà créé et enregistrez les options.
  4. Créez un nouvel état graphique.
  5. Créez une forme de cercle (objet aspose.pydrawing.GraphicsPath).
  6. Définissez un clip avec ce chemin.
  7. Définissez une peinture sur l’état graphique actuel de PsDocument.
  8. Remplissez le chemin du rectangle avec la peinture actuelle.
  9. Quittez l’état graphique actuel pour passer à celui du niveau supérieur.
  10. Traduisez à la place du rectangle rempli.
  11. Tracez avec une ligne pointillée les limites du même rectangle au-dessus de celui rempli pour afficher les limites du rectangle rempli coupé.
  12. Fermez la page.
  13. Enregistrez le document.
 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()

Voir Travailler avec des clips dans des documents PS dans .NET, Java.

Le résultat de l’exécution de ce code est

Coupe de coupure

Vous pouvez télécharger des exemples et des fichiers de données à partir de GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.