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