Arbeiten mit Schraffurmustern in PostScript | .NET

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.

Für das Malen durch Schraffuren verfügt die .NET-Plattform über eine separate Klasse, abgeleitet von System.Drawing.Brush, System.Drawing.HatchBrush. Der Unterschied zu System.Drawing.TextureBrush besteht darin, dass es vordefinierte Stile benannt hat, die definieren, welches Bild für die Kachelung verwendet werden soll. Die .NET-Plattform bietet 53 Schraffurstile und alle 52 Stile können zum Füllen oder Strichen (Konturieren) in PsDocument verwendet werden.

Um Grafikobjekte mit einem Schraffurmuster in der Aspose.Page für .NET-Bibliothek zu malen, reicht es aus, einfach System.Drawing.HatchBrush an SetPaint() oder einen der FillText zu übergeben () oder FillAndStrokeText()-Methoden, die System.Drawing.Brush als Parameter akzeptieren.

Um Grafikobjekte mit einem Schraffurmuster in der Aspose.Page für .NET-Bibliothek zu umreißen, sollte jemand einen neuen System.Drawing.Pen mit System.Drawing.HacthBrush erstellen und ihn an SetStroke übergeben () oder eine der Methoden OutlineText() oder FillAndStrokeText(), die System.Drawing.Pen als Parameter akzeptieren.

Im folgenden Beispiel zeigen wir zunächst, wie Sie eine Form mit einem Schraffurmuster füllen, dann alle verschiedenen Schraffurstile in .NET und schließlich, wie Sie einen Text mit einem Schraffurmuster füllen und umreißen.

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 den erforderlichen Grafikpfad oder die erforderliche Schriftart, abhängig davon, welches Objekt wir füllen oder umreißen möchten.
  5. Erstellen Sie ein Objekt von System.Drawing.HatchBrush mit Wunschstil.
  6. Legen Sie den Schraffurpinsel als aktuelle Farbe in PsDocument fest
  7. Füllen Sie den Grafikpfad mit der aktuellen Farbe oder füllen Sie einen Text. Wenn wir eine der Methoden zum Füllen eines Textes verwenden, die System.Drawing.Brush 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. Erstellen Sie das Objekt System.Drawing.Pen mit dem Schraffurpinsel.

  2. Legen Sie diesen Stift als aktuellen Strich in PsDocument fest.

  3. Umreißen Sie den Grafikpfad mit dem aktuellen Strich oder umreißen Sie den Text. Wenn wir eine der Methoden zum Umreißen des Textes verwenden, die System.Drawing.Pen als Parameter akzeptiert, kann der vorherige Punkt ignoriert werden.

  4. Schließen Sie die Seite.

  5. 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
 3string outputFileName = "AddHatchPattern_outPS.ps";
 4
 5//Create save options with A4 size
 6PsSaveOptions options = new PsSaveOptions();
 7
 8// Create new 1-paged PS Document
 9PsDocument document = new PsDocument(OutputDir + outputFileName, options, false);
10
11int x0 = 20;
12int y0 = 100;
13int squareSide = 32;
14int width = 500;
15int sumX = 0;
16
17//Restore graphics state
18document.WriteGraphicsSave();
19
20//Translate to initial point
21document.Translate(x0, y0);
22
23//Create rectngle path for every pattern square
24GraphicsPath path = new GraphicsPath();
25path.AddRectangle(new RectangleF(0, 0, squareSide, squareSide));
26
27//Create pen for outlining pattern square
28Pen pen = new Pen(Color.Black, 2);
29
30//For every hatch pattern style 
31for (HatchStyle hatchStyle = 0; hatchStyle <= (HatchStyle)52; hatchStyle++)
32{
33    //Set paint with current hatch brush style
34    document.SetPaint(new HatchBrush(hatchStyle, Color.Black, Color.White));
35
36    //Calculate displacement in order to don't go beyond the page bounds
37    int x = squareSide;
38    int y = 0;
39    if (sumX >= width)
40    {
41        x = -(sumX - squareSide);
42        y += squareSide;
43    }
44    //Translate current graphics state
45    document.Translate(x, y);
46    //Fill pattern square
47    document.Fill(path);
48    //Set stroke
49    document.SetStroke(pen);
50    //Draw square outline
51    document.Draw(path);
52
53    //Calculate distance from X0
54    if (sumX >= width)
55    {
56        sumX = squareSide;
57    }
58    else
59        sumX += x;
60}
61
62//Restore graphics state
63document.WriteGraphicsRestore();
64
65//Fill text with hatch pattern
66HatchBrush brush = new HatchBrush(HatchStyle.DiagonalCross, Color.Red, Color.Yellow);
67System.Drawing.Font font = new System.Drawing.Font("Arial", 96, FontStyle.Bold);
68document.FillAndStrokeText("ABC", font, 200, 300, brush, pen);
69
70//Outline text with hatch pattern
71brush = new HatchBrush(HatchStyle.Percent50, Color.Blue, Color.White);
72document.OutlineText("ABC", font, 200, 400, new Pen(brush, 5));
73
74//Close current page
75document.ClosePage();
76
77//Save the document
78document.Save();

Für Linux, MacOS und andere Nicht-Windows-Betriebssysteme bieten wir die Verwendung unseres Nuget-Pakets Aspose.Page.Drawing an. Es verwendet das Aspose.Drawing-Backend anstelle der System.Drawing-Systembibliothek.

Importieren Sie also den Namensraum Aspose.Page.Drawing anstelle des Namensraums System.Drawing. Im obigen Codeausschnitt wird Aspose.Page.Drawing.Rectangle anstelle von System.Drawing.Rectangle verwendet. Aspose.Page.Drawing.Drawing2D.GraphicsPath wird anstelle von System.Drawing.Drawing2D.GraphicsPath usw. verwendet. Unsere Codebeispiele auf GitHub enthalten alle notwendigen Ersetzungen.

Weitere Informationen finden Sie unter „Arbeiten mit einem Schraffurmuster im PS-Dokument“ in Java.


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.