Arbeiten mit Texturen in PostScript | .NET

Fügen Sie im PS-Dokument ein Texturkachelmuster hinzu

Ein Texturkachelmuster ist ein Bild, das zum Füllen oder Zeichnen von Objekten verwendet wird: Formen oder Text. Wenn die Größe des Bildes kleiner als die Größe des Objekts ist, wird es in X- und Y-Richtung wiederholt, um alle erforderlichen Bereiche abzudecken.

Der Vorgang der Wiederholung des Bildes innerhalb von Grafikobjekten wird als Kacheln bezeichnet. Um Farbe oder Strich in PsDocument festzulegen, müssen wir ein Objekt der Klasse System.Drawing.Brush für ein Gemälde und ein Objekt der Klasse System.Drawing.Pen für den Strich übergeben Methoden.

Die Aspose.Page for .NET-Bibliothek verarbeitet alle Unterklassen von System.Drawing.Brush, die von der .NET-Plattform angeboten werden. Dies sind System.Drawing.SolidBrush, System.Drawing.TextureBrush, System.Drawing.LinearGradientBrush, System.Drawing.PathGradientBrush und *System.Drawing.HatchBrush *. Die Klasse System.Drawing.Pen kann nicht erweitert werden, da sie versiegelt ist, aber sie enthält System.Drawing.Brush als Eigenschaft und daher kann die Bibliothek Aspose.Page für .NET auch einen vollständigen Satz verwenden von Pinseln auch zum Zeichnen von Linien und zum Umreißen von Formen und Text.

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

Um Grafikobjekte mit einem strukturierten Muster in der Aspose.Page für .NET-Bibliothek zu umreißen, sollten Sie einen neuen System.Drawing.Pen mit System.Drawing.TextureBrush erstellen und ihn an SetStroke übergeben () oder eine der Methoden OutlineText() oder FillAndStrokeText(), die System.Drawing.Pen als Parameter akzeptiert.

Im folgenden Beispiel zeigen wir, wie Sie eine Form und einen Text füllen und einen Text mit einem Texturkachelmuster umreißen.

Beschreibung der Arbeitsschritte mit Texture Pattern und PsDocument im Beispiel:

  1. Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
  2. Erstellen Sie ein PsSaveOptions-Objekt mit Standardoptionen.
  3. Erstellen Sie ein einseitiges PsDocument mit einem bereits erstellten Ausgabestream und Speicheroptionen.
  4. Erstellen Sie einen neuen Grafikstatus und verschieben Sie ihn an die erforderliche Position.
  5. Erstellen Sie System.Drawing.Bitmap aus der Bilddatei.
  6. Erstellen Sie System.Drawing.TextureBrush aus dem Bild.
  7. Stellen Sie die erforderliche Transformation im Texturpinsel ein.
  8. Legen Sie den Texturpinsel als aktuelle Farbe im aktuellen Grafikstatus von PsDocument fest.
  9. Erstellen Sie einen rechteckigen Pfad.
  10. Füllen Sie das Rechteck mit dem Texturpinsel.
  11. Speichern Sie die aktuelle Farbe als lokale Variable für die zukünftige Verwendung.
  12. Stellen Sie den aktuellen Strich mit einem roten Stift ein.
  13. Umreißen Sie das Rechteck mit einem aktuellen Stift.
  14. Verlassen Sie den aktuellen Grafikstatus in den Grafikstatus der oberen Ebene.
  15. Erstellen Sie eine System-Schriftart.
  16. Text füllen und streichen (umreißen). Zum Füllen der Textur wird ein Pinsel und zum Streichen ein schwarzer Stift verwendet.
  17. Umreißen Sie den Text an der anderen Position mit dem neuen System.Drawing.Pen, der mit dem Texturpinsel als Pinsel erstellt wurde.
  18. Schließen Sie die Seite.
  19. Speichern Sie das Dokument.
 1 //Create an output stream for PostScript document
 2using (Stream outPsStream = new FileStream(dataDir + "AddTextureTilingPattern_outPS.ps", FileMode.Create))
 3{
 4    //Create save options with A4 size
 5    PsSaveOptions options = new PsSaveOptions();
 6
 7    // Create new 1-paged PS Document
 8    PsDocument document = new PsDocument(outPsStream, options, false);
 9
10    
11    document.WriteGraphicsSave();
12    document.Translate(200, 100);
13
14    //Create a Bitmap object from image file
15    using (Bitmap image = new Bitmap(dataDir + "TestTexture.bmp"))
16    {
17        //Create texture brush from the image
18        TextureBrush brush = new TextureBrush(image, WrapMode.Tile);
19
20        //Add scaling in X direction to the mattern
21        Matrix transform = new Matrix(2, 0, 0, 1, 0, 0);
22        brush.Transform = transform;
23
24        //Set this texture brush as current paint
25        document.SetPaint(brush);
26    }
27
28    //Create a rectangle path
29    GraphicsPath path = new GraphicsPath();
30    path.AddRectangle(new RectangleF(0, 0, 200, 100));
31
32    //Fill the rectangle
33    document.Fill(path);
34
35    //Get current paint
36    Brush paint = document.GetPaint();
37
38    //Set red stroke
39    document.SetStroke(new Pen(new SolidBrush(Color.Red), 2));
40    //Stroke the rectangle
41    document.Draw(path);
42
43    document.WriteGraphicsRestore();
44
45    //Fill the text with the texture pattern                
46    Font font = new Font("Arial", 96, FontStyle.Bold);
47    document.FillAndStrokeText("ABC", font, 200, 300, paint, new Pen(Color.Black, 2));
48
49    //Outline the text with the texture pattern
50    document.OutlineText("ABC", font, 200, 400, new Pen(paint, 5));
51
52    //Close current page
53    document.ClosePage();
54
55    //Save the document
56    document.Save();
57}

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.RectangleF anstelle von System.Drawing.RectangleF, Aspose.Page.Drawing.Drawing2D.GraphicsPath anstelle von System.Drawing.Drawing2D.GraphicsPath usw. verwendet. Unsere Codebeispiele auf GitHub enthalten alle notwendigen Ersetzungen.

Siehe Arbeiten mit Texturen in PS-Dokumenten in Java.

Das Ergebnis der Ausführung dieses Codes wird wie folgt angezeigt:

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