Travailler avec des motifs de hachuresdans PS | Java

Ajouter un motif de hachures dans un document PS

Le motif de hachures est un motif de carrelage texturé généralement représenté par une petite image simple en 2 couleurs (généralement en noir et blanc). Le contenu principal de ces petites images est constitué de diverses hachures.

La plate-forme Java ne dispose pas de classe distincte pour peindre des formes et du texte avec des hachures. Cependant, la bibliothèque Aspose.Page pour Java propose com.aspose.eps.HatchPaintLibrary classe qui donne la possibilité de créer du java.awt.TexturePaint rempli de hachures définies par l’un des 55 styles proposés par com.aspose.eps.HatchStyle.

Afin de peindre des objets graphiques avec un motif de hachures dans la bibliothèque Aspose.Page pour Java, il est nécessaire de créer des hachures java.awt.TexturePaint avec le style de hachures attribué, de le transmettre dans setPaint() ou l’une des méthodes fillText() ou fillAndStrokeText() qui acceptent java.awt.Paint comme paramètre.

Afin de décrire les objets graphiques avec un motif de hachures dans la bibliothèque Aspose.Page pour Java, quelqu’un doit définir le motif de hachures comme peinture actuelle dans PsDocument, créer un nouveau java.awt.BasicStroke et le transmettre à * setStroke()* ou l’une des méthodes outlineText() ou fillAndStrokeText() qui acceptent java.awt.Stroke comme paramètre.

Dans l’exemple ci-dessous, nous montrons, d’abord, comment remplir une forme avec un motif de hachures, puis toutes les variétés de styles de hachures en Java et, enfin, comment remplir et décrire un texte avec un motif de hachures.

Un algorithme pour peindre des objets graphiques avec un motif de hachures dans un nouveau document PS comprend les étapes suivantes :

  1. Créez un flux de sortie pour le fichier PS résultant.
  2. Créez PsSaveOptions.
  3. Créez PsDocument avec le flux de sortie déjà créé et enregistrez les options.
  4. Créez la forme ou la police en fonction de l’objet que nous allons remplir ou décrire.
  5. Créez avec com.aspose.eps.HatchPaintLibrary un objet de java.awt.TexturePaint avec un style pieux.
  6. Définissez la peinture des hachures comme peinture actuelle dans PsDocument
  7. Remplissez la forme avec la peinture actuelle ou remplissez un texte. Si nous utilisons l’une des méthodes de remplissage d’un texte qui accepte java.awt.Paint comme paramètre, le point précédent peut être ignoré.
  8. Fermez la page.
  9. Enregistrez le document.

Si nous avons besoin de tracer (décrire) des objets graphiques avec un motif de hachures au lieu des 4 derniers points, ce qui suit sera :

  1. Définissez la peinture de hachures comme peinture actuelle dans PsDocument.

  2. Créez l’objet java.awt.BasicStroke.

  3. Définissez ce trait comme trait actuel dans PsDocument.

  4. Décrivez la forme avec la peinture actuelle et tracez ou décrivez le texte. Si nous utilisons l’une des méthodes pour décrire le texte qui accepte java.awt.Stroke comme paramètre, le point précédent peut être ignoré.

  5. Fermez la page.

  6. Enregistrez le document.

 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();

Voir Travailler avec un motif de hachures dans un document PS dans .NET.

Le résultat de l’exécution de ce code apparaît comme suit

Ajouter un motif de hachures

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.