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 :
- Créez un flux de sortie pour le fichier PS résultant.
- Créez PsSaveOptions.
- Créez PsDocument avec le flux de sortie déjà créé et enregistrez les options.
- Créez la forme ou la police en fonction de l’objet que nous allons remplir ou décrire.
- Créez avec com.aspose.eps.HatchPaintLibrary un objet de java.awt.TexturePaint avec un style pieux.
- Définissez la peinture des hachures comme peinture actuelle dans PsDocument
- 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é.
- Fermez la page.
- 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 :
Définissez la peinture de hachures comme peinture actuelle dans PsDocument.
Créez l’objet java.awt.BasicStroke.
Définissez ce trait comme trait actuel dans PsDocument.
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é.
Fermez la page.
Enregistrez le document.
1// The path to the documents directory.
2String dataDir = Utils.getDataDir();
3
4//Create output stream for PostScript document
5FileOutputStream outPsStream = new FileOutputStream(dataDir + "AddHatchPattern_outPS.ps");
6//Create save options with A4 size
7PsSaveOptions options = new PsSaveOptions();
8
9//Create new PS Document with the page opened
10PsDocument document = new PsDocument(outPsStream, options, false);
11
12int x0 = 20;
13int y0 = 100;
14int squareSide = 32;
15int width = 500;
16int sumX = 0;
17
18//Restore graphics state
19document.writeGraphicsSave();
20
21//Translate to initial point
22document.translate(x0, y0);
23
24//Create a square for every pattern
25Rectangle2D.Float square = new Rectangle2D.Float(0, 0, squareSide, squareSide);
26
27//Create pen for outlining pattern square
28BasicStroke stroke = new BasicStroke(2);
29
30HatchStyle [] hatchStyles = HatchStyle.values();
31
32//For every hatch pattern style
33for (int i = 0; i < hatchStyles.length; i++) {
34 //Create a hatch texture pattern by hatch style, foreground and background colors
35 TexturePaint paint = HatchPaintLibrary.getHatchTexturePaint(hatchStyles[i], Color.BLACK, Color.WHITE);
36 //Set paint with the current hatch pattern
37 document.setPaint(paint);
38
39 //Calculate a displacement in order to don't go beyond the page bounds
40 int x = squareSide;
41 int y = 0;
42 if (sumX >= width) {
43 x = -(sumX - squareSide);
44 y += squareSide;
45 }
46
47 //Translate current graphics state
48 document.translate(x, y);
49 //Fill pattern square
50 document.fill(square);
51
52 //Set current paint
53 document.setPaint(Color.BLACK);
54 //Set current stroke
55 document.setStroke(stroke);
56 //Draw square outline
57 document.draw(square);
58
59 //Calculate distance from X0
60 if (sumX >= width)
61 sumX = squareSide;
62 else
63 sumX += x;
64}
65
66//Restore graphics state
67document.writeGraphicsRestore();
68
69//Fill a text with the hatch pattern
70TexturePaint paint = HatchPaintLibrary.getHatchTexturePaint(HatchStyle.DiagonalCross, Color.RED, Color.YELLOW);
71Font font = new Font("Arial", Font.BOLD, 96);
72document.fillAndStrokeText("ABC", font, 200, 400, paint, Color.BLACK, stroke);
73
74//Outline the text with the hatch pattern
75paint = HatchPaintLibrary.getHatchTexturePaint(HatchStyle.Percent70, Color.BLUE, Color.WHITE);
76document.outlineText("ABC", font, 200, 600, paint, new BasicStroke(5));
77
78//Close current page
79document.closePage();
80//Save the document
81document.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
Vous pouvez télécharger des exemples et des fichiers de données à partir de GitHub.