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:

  1. Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
  2. Erstellen Sie PsSaveOptions.
  3. Erstellen Sie PsDocument mit dem bereits erstellten Ausgabestream und den Speicheroptionen.
  4. Erstellen Sie die Form oder Schriftart abhängig davon, welches Objekt wir füllen oder umreißen möchten.
  5. Erstellen Sie mit com.aspose.eps.HatchPaintLibrary ein Objekt von java.awt.TexturePaint mit Wunschstil.
  6. Legen Sie die Schraffurfarbe als aktuelle Farbe in PsDocument fest
  7. 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.
  8. Schließen Sie die Seite.
  9. Speichern Sie das Dokument.

Wenn wir Grafikobjekte mit einem Schraffurmuster anstelle der letzten 4 Punkte streichen (umreißen) benötigen, ist Folgendes:

  1. Legen Sie die Schraffurfarbe als aktuelle Farbe in PsDocument fest.

  2. Erstellen Sie das Objekt java.awt.BasicStroke.

  3. Legen Sie diesen Strich als aktuellen Strich in PsDocument fest.

  4. 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.

  5. Schließen Sie die Seite.

  6. 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:

Schraffurmuster hinzufügen

Sie können Beispiele und Datendateien herunterladen von GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.