Arbeiten mit Schraffurmustern in PS-Dateien | Java
Schraffurmuster im PS-Dokument hinzufügen
Das Schraffurmuster ist ein Texturkachelmuster, das normalerweise durch ein kleines, zweifarbiges (normalerweise schwarz-weißes) einfaches Bild dargestellt wird. Der Hauptinhalt dieser kleinen Bilder sind verschiedene Schraffuren.
Die Java-Plattform verfügt über keine separate Klasse zum Malen von Formen und Text mit Schraffuren. Allerdings bietet die Aspose.Page for Java-Bibliothek com.aspose.eps.HatchPaintLibrary Klasse, die die Möglichkeit bietet, java.awt.TexturePaint zu erstellen, die mit Schraffuren gefüllt ist, die durch einen von 55 Stilen definiert sind, die von com.aspose.eps.HatchStyle.
Um Grafikobjekte mit einem Schraffurmuster in der Aspose.Page for Java-Bibliothek zu malen, ist es notwendig, eine Schraffur java.awt.TexturePaint mit zugewiesenem Schraffurstil zu erstellen und diese an setPaint() zu übergeben oder eine der Methoden fillText() oder fillAndStrokeText(), die java.awt.Paint als Parameter akzeptieren.
Um Grafikobjekte mit einem Schraffurmuster in der Bibliothek Aspose.Page für Java zu umreißen, sollte jemand das Schraffurmuster als aktuelle Farbe in PsDocument festlegen, ein neues java.awt.BasicStroke erstellen und es an * übergeben. setStroke()* oder eine der Methoden outlineText() oder fillAndStrokeText(), die java.awt.Stroke als Parameter akzeptieren.
Im folgenden Beispiel zeigen wir zunächst, wie man eine Form mit einem Schraffurmuster füllt, dann alle verschiedenen Schraffurstile in Java und schließlich, wie man einen Text mit einem Schraffurmuster füllt und umrandet.
Ein Algorithmus zum Malen von Grafikobjekten mit einem Schraffurmuster in einem neuen PS-Dokument umfasst die folgenden Schritte:
- Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
- Erstellen Sie PsSaveOptions.
- Erstellen Sie PsDocument mit dem bereits erstellten Ausgabestream und den Speicheroptionen.
- Erstellen Sie die Form oder Schriftart abhängig davon, welches Objekt wir füllen oder umreißen möchten.
- Erstellen Sie mit com.aspose.eps.HatchPaintLibrary ein Objekt von java.awt.TexturePaint mit Wunschstil.
- Legen Sie die Schraffurfarbe als aktuelle Farbe in PsDocument fest
- Füllen Sie die Form mit der aktuellen Farbe oder füllen Sie einen Text. Wenn wir eine der Methoden zum Füllen eines Textes verwenden, die java.awt.Paint als Parameter akzeptiert, kann der vorherige Punkt ignoriert werden.
- Schließen Sie die Seite.
- Speichern Sie das Dokument.
Wenn wir Grafikobjekte mit einem Schraffurmuster anstelle der letzten 4 Punkte streichen (umreißen) benötigen, ist Folgendes:
Legen Sie die Schraffurfarbe als aktuelle Farbe in PsDocument fest.
Erstellen Sie das Objekt java.awt.BasicStroke.
Legen Sie diesen Strich als aktuellen Strich in PsDocument fest.
Umreißen Sie die Form mit der aktuellen Farbe und dem aktuellen Strich oder umreißen Sie den Text. Wenn wir eine der Methoden zum Umreißen des Textes verwenden, die java.awt.Stroke als Parameter akzeptiert, kann der vorherige Punkt ignoriert werden.
Schließen Sie die Seite.
Speichern Sie das Dokument.
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();Weitere Informationen finden Sie unter „Arbeiten mit einem Schraffurmuster im PS-Dokument“ in .NET.
Das Ergebnis der Ausführung dieses Codes wird wie folgt angezeigt:

Sie können Beispiele und Datendateien herunterladen von GitHub.