Arbeiten mit Clips in PostScript | .NET

Contents
[ Hide Show ]

Clip im PS-Dokument hinzufügen

Ein Clip in einem PS-Dokument ist ein Pfad, der den Inhalt des aktuellen Grafikstatus begrenzt, der im PS-Viewer oder -Editor angezeigt wird. Der Inhalt, der außerhalb der Grenzen verbleibt, wird abgeschnitten.

Ein Beschneidungspfad in .NET kann auf drei Arten zugewiesen werden:

Derzeit bietet die Bibliothek Aspose.Page für .NET die erste und die zweite Möglichkeit zum Ausschneiden. Im folgenden Beispiel erhalten wir einen Kreis System.Drawing.Drawing2D.GraphicsPath aus einem Rechteck als Beschneidungspfad und schneiden im gleichen Grafikzustand ein blau gefülltes Rechteck ab.

Um in diesem Beispiel einen Clip zum neuen PsDocument mit der Aspose.Page für .NET-Bibliothek hinzuzufügen, führen wir die folgenden Schritte aus:

  1. Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
  2. Erstellen Sie das Objekt PsSaveOptions mit Standardoptionen.
  3. Erstellen Sie ein einseitiges PsDocument mit einem bereits erstellten Ausgabestream und Speicheroptionen.
  4. Erstellen Sie einen neuen Grafikstatus.
  5. Erstellen Sie aus dem Rechteck einen Kreis System.Drawing.Drawing2D.GraphicsPath.
  6. Legen Sie einen Clip mit diesem Pfad fest.
  7. Stellen Sie einen Paint auf den aktuellen Grafikstatus von PsDocument ein.
  8. Füllen Sie den Rechteckpfad mit der aktuellen Farbe.
  9. Verlassen Sie den aktuellen Grafikstatus zur oberen Ebene eins.
  10. Übertragen Sie es an die Stelle des gefüllten Rechtecks.
  11. Zeichnen Sie mit einer gestrichelten Linie die Grenzen desselben Rechtecks ​​über dem gefüllten Rechteck, um die Grenzen des abgeschnittenen gefüllten Rechtecks ​​anzuzeigen.
  12. Schließen Sie die Seite.
  13. Speichern Sie das Dokument.
 1// Demonstrates clipping by shape and clipping by text in PS document.
 2
 3string outputFileName = "ApplyClipByShape_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
11//Create graphics path from the rectangle
12GraphicsPath rectanglePath = new GraphicsPath();
13rectanglePath.AddRectangle(new RectangleF(0, 0, 300, 200));
14
15////////////////////////////////////// Clipping by shape //////////////////////////////////////////////////////////////////////
16
17//Save graphics state in order to return back to this state after transformation
18document.WriteGraphicsSave();
19
20//Displace current graphics state on 100 points to the right and 100 points to the bottom.
21document.Translate(100, 100);
22
23//Create graphics path from the circle
24GraphicsPath circlePath = new GraphicsPath();
25circlePath.AddEllipse(new RectangleF(50, 0, 200, 200));
26
27//Add clipping by circle to the current graphics state
28document.Clip(circlePath);
29
30//Set paint in the current graphics state
31document.SetPaint(new SolidBrush(Color.Blue));
32
33//Fill the rectangle in the current graphics state (with clipping)
34document.Fill(rectanglePath);
35
36//Restore graphics state to the previus (upper) level
37document.WriteGraphicsRestore();
38
39//Displace upper level graphics state on 100 points to the right and 100 points to the bottom.
40document.Translate(100, 100);
41
42Pen pen = new Pen(new SolidBrush(Color.Blue), 2);
43pen.DashStyle = DashStyle.Dash;
44
45document.SetStroke(pen);
46
47//Draw the rectangle in the current graphics state (has no clipping) above clipped rectangle
48document.Draw(rectanglePath);
49
50//Close current page
51document.ClosePage();
52
53//Save the document
54document.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 Clips in PS-Dokumenten in Java.


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

Ausschnitt

Im nächsten Beispiel erhalten wir eine Schriftart, die ein blau gefülltes Rechteck mit der Textkontur ausschneidet.

Um in diesem Beispiel einen Textausschnitt zum neuen PsDocument mit der Aspose.Page für .NET-Bibliothek hinzuzufügen, führen wir die folgenden Schritte aus:

  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.
  5. Erstellen Sie eine Schriftart.
  6. Legen Sie einen Clip mit Text und Schriftart fest.
  7. Stellen Sie einen Paint auf den aktuellen Grafikstatus von PsDocument ein.
  8. Füllen Sie den Rechteckpfad mit der aktuellen Farbe.
  9. Verlassen Sie den aktuellen Grafikstatus zur oberen Ebene eins.
  10. Übertragen Sie es an die Stelle des gefüllten Rechtecks.
  11. Zeichnen Sie mit einer gestrichelten Linie die Grenzen desselben Rechtecks ​​über dem gefüllten Rechteck, um die Grenzen des abgeschnittenen gefüllten Rechtecks ​​anzuzeigen.
  12. Schließen Sie die Seite.
  13. Speichern Sie das Dokument.
 1// Demonstrates clipping by text in PS document.
 2
 3string outputFileName = "ApplyClipByText_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
11//Create graphics path from the rectangle
12GraphicsPath rectanglePath = new GraphicsPath();
13rectanglePath.AddRectangle(new RectangleF(0, 0, 300, 200));
14
15//Save graphics state in order to return back to this state after transformation
16document.WriteGraphicsSave();
17
18//Displace current graphics state on 100 points to the right and 100 points to the bottom.
19document.Translate(100, 100);
20
21Pen pen = new Pen(new SolidBrush(Color.Blue), 2);
22pen.DashStyle = DashStyle.Dash;
23int fontSize = 120;
24System.Drawing.Font font = new System.Drawing.Font("Arial", fontSize, FontStyle.Bold);
25
26//Clip rectangle by text's outline
27document.ClipText("ABC", font, 20, fontSize + 10);
28
29//Set paint in the current graphics state
30document.SetPaint(new SolidBrush(Color.Blue));
31
32document.Fill(rectanglePath);
33
34document.WriteGraphicsRestore();
35
36document.Translate(100, 100);
37
38document.SetStroke(pen);
39//Draw the rectangle in the current graphics state (has no clipping) above clipped rectangle
40document.Draw(rectanglePath);
41
42//Close current page
43document.ClosePage();
44
45//Save the document
46document.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 Clips in PS-Dokumenten in Java.


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

ClippingByText

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.