Arbeiten mit Clips in PS-Datei| Java
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 kann in Java auf drei Arten zugewiesen werden:
- durch jede implementierte Klasse java.awt.Shape, die beliebige geschlossene Formen enthalten kann;
- nach Textgliederung;
- 1 bpp (Bits pro Pixel) 2-Farben-Bild als Schablonenmaske;
Derzeit bietet die Aspose.Page for Java-Bibliothek die erste und die zweite Möglichkeit zum Ausschneiden.
Im folgenden Beispiel erhalten wir eine Kreisform 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 Java-Bibliothek hinzuzufügen, führen wir die folgenden Schritte aus:
- Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
- Erstellen Sie ein PsSaveOptions-Objekt mit Standardoptionen.
- Erstellen Sie ein einseitiges PsDocument mit einem bereits erstellten Ausgabestream und Speicheroptionen.
- Erstellen Sie einen neuen Grafikstatus.
- Erstellen Sie eine Kreisform (Objekt java.awt.geom.Ellipse2D).
- Legen Sie einen Clip mit diesem Pfad fest.
- Stellen Sie einen Paint auf den aktuellen Grafikstatus von PsDocument ein.
- Füllen Sie den Rechteckpfad mit der aktuellen Farbe.
- Verlassen Sie den aktuellen Grafikstatus zur oberen Ebene eins.
- Übertragen Sie es an die Stelle des gefüllten Rechtecks.
- Zeichnen Sie mit einer gestrichelten Linie die Grenzen desselben Rechtecks über dem gefüllten Rechteck, um die Grenzen des abgeschnittenen gefüllten Rechtecks anzuzeigen.
- Schließen Sie die Seite.
- Speichern Sie das Dokument.
1// Demonstrates clipping by shape and clipping by text in PS document.
2String outputFileName = "ApplyClipByShape_outPS.ps";
3
4//Create save options with A4 size
5PsSaveOptions options = new PsSaveOptions();
6
7// Create new 1-paged PS Document
8PsDocument document = new PsDocument(getOutputDir() + outputFileName, options, false);
9
10//Create graphics path from the rectangle
11GeneralPath rectanglePath = new GeneralPath();
12rectanglePath.append(new Rectangle2D.Float(0, 0, 300, 200), false);
13
14////////////////////////////////////// Clipping by shape ///////////////////////////////
15
16//Save graphics state in order to return back to this state after transformation
17document.writeGraphicsSave();
18
19//Displace current graphics state on 100 points to the right and 100 points to the bottom.
20document.translate(100, 100);
21
22//Create graphics path from the circle
23GeneralPath circlePath = new GeneralPath();
24circlePath.append(new Ellipse2D.Float(50, 0, 200, 200), false);
25
26//Add clipping by circle to the current graphics state
27document.clip(circlePath);
28
29//Set paint in the current graphics state
30document.setPaint(Color.BLUE);
31
32//Fill the rectangle in the current graphics state (with clipping)
33document.fill(rectanglePath);
34
35//Restore graphics state to the previous (upper) level
36document.writeGraphicsRestore();
37
38//Displace upper level graphics state on 100 points to the right and 100 points to the bottom.
39document.translate(100, 100);
40
41//Create dashed stroke similar to Pen with DashStyle.Dash
42float[] dash = new float[] { 5.0f };
43BasicStroke stroke = new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f);
44
45document.setStroke(stroke);
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();Weitere Informationen finden Sie unter Arbeiten mit Clips in PS-Dokumenten in .NET.
Das Ergebnis der Ausführung dieses Codes wird wie folgt angezeigt:

Im nächsten Beispiel erhalten wir eine Schriftart, die zum Zuschneiden eines blau gefüllten Rechtecks mit der Textkontur verwendet wird.
Um in diesem Beispiel einen Textausschnitt zum neuen PsDocument mit der Aspose.Page for Java-Bibliothek hinzuzufügen, führen wir die folgenden Schritte aus:
- Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
- Erstellen Sie ein Objekt PsSaveOptions mit Standardoptionen.
- Erstellen Sie ein einseitiges PsDocument mit einem bereits erstellten Ausgabestream und Speicheroptionen.
- Erstellen Sie einen neuen Grafikstatus.
- Erstellen Sie eine Schriftart.
- Legen Sie einen Clip mit dem Text und der Schriftart fest.
- Stellen Sie einen Paint auf den aktuellen Grafikstatus von PsDocument ein.
- Füllen Sie den Rechteckpfad mit der aktuellen Farbe.
- Verlassen Sie den aktuellen Grafikstatus zur oberen Ebene eins.
- Übertragen Sie es an die Stelle des gefüllten Rechtecks.
- Zeichnen Sie mit einer gestrichelten Linie die Grenzen desselben Rechtecks über dem gefüllten Rechteck, um die Grenzen des abgeschnittenen gefüllten Rechtecks anzuzeigen.
- Schließen Sie die Seite.
- Speichern Sie das Dokument.
1// Demonstrates clipping by text in PS document.
2String outputFileName = "ApplyClipByText_outPS.ps";
3
4//Create save options with A4 size
5PsSaveOptions options = new PsSaveOptions();
6
7// Create new 1-paged PS Document
8PsDocument document = new PsDocument(getOutputDir() + outputFileName, options, false);
9
10//Create graphics path from the rectangle
11GeneralPath rectanglePath = new GeneralPath();
12rectanglePath.append(new Rectangle2D.Float(0, 0, 300, 200), false);
13
14//Save graphics state in order to return back to this state after transformation
15document.writeGraphicsSave();
16
17//Displace current graphics state on 100 points to the right and 100 points to the bottom.
18document.translate(100, 100);
19
20float[] dash = new float[] { 5.0f };
21BasicStroke stroke = new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dash, 0.0f);
22
23int fontSize = 120;
24Font font = new Font("Arial", Font.BOLD, fontSize);
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(Color.BLUE);
31
32document.fill(rectanglePath);
33
34document.writeGraphicsRestore();
35
36document.translate(100, 100);
37
38//Set paint in the current graphics state
39document.setPaint(Color.BLUE);
40
41document.setStroke(stroke);
42//Draw the rectangle in the current graphics state (has no clipping) above clipped rectangle
43document.draw(rectanglePath);
44
45//Close current page
46document.closePage();
47
48//Save the document
49document.save();Weitere Informationen finden Sie unter Arbeiten mit Clips in PS-Dokumenten in .NET.
Das Ergebnis der Ausführung dieses Codes wird wie folgt angezeigt:

Sie können Beispiele und Datendateien herunterladen von GitHub.