Arbeiten mit Clips in PS-Datei| Java

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 kann in Java auf drei Arten zugewiesen werden:

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:

  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 Kreisform (Objekt java.awt.geom.Ellipse2D).
  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//Create an output stream for the PostScript document
 2FileOutputStream outPsStream = new FileOutputStream(dataDir + "Clipping_outPS.ps");
 3//Create save options with A4 size
 4PsSaveOptions options = new PsSaveOptions();
 5
 6// Create a new PS Document with the page opened
 7PsDocument document = new PsDocument(outPsStream, options, false);
 8
 9//Create a rectangle
10Shape rectangle = new Rectangle2D.Float(0, 0, 300, 200);
11
12//Set the paint in the upper level graphics state
13document.setPaint(Color.BLUE);
14
15//Save the  graphics state to return back to this state after the transformation
16document.writeGraphicsSave();
17
18//Displace the current graphics state on 100 points to the right and 100 points to the bottom.
19document.translate(100, 100);
20
21//Create a circle shape
22Shape circle = new Ellipse2D.Float(50, 0, 200, 200);
23
24//Add clipping by the circle to the current graphics state
25document.clip(circle);
26
27//Fill the rectangle in the current graphics state (with clipping)
28document.fill(rectangle);
29
30//Restore the graphics state to the previus (upper) level
31document.writeGraphicsRestore();
32
33//Displace the upper-level graphics state on 100 points to the right and 100 points to the bottom.
34document.translate(100, 100);
35
36BasicStroke stroke = new BasicStroke(2,
37        BasicStroke.CAP_BUTT,
38        BasicStroke.JOIN_MITER,
39        10.0f, new float []{5.0f}, 0.0f);
40
41document.setStroke(stroke);
42
43//Draw the rectangle in the current graphics state (has no clipping) above the clipped rectangle
44document.draw(rectangle);
45
46//Close the current page
47document.closePage();
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:

Ausschnitt

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:

  1. Erstellen Sie einen Ausgabestream für die resultierende PS-Datei.
  2. Erstellen Sie ein 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 eine Schriftart.
  6. Legen Sie einen Clip mit dem Text und der 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//Create output stream for PostScript document
 2FileOutputStream outPsStream = new FileOutputStream(dataDir + "Clipping_outPS.ps");
 3//Create save options with A4 size
 4PsSaveOptions options = new PsSaveOptions();
 5
 6// Create a new PS Document with the page opened
 7PsDocument document = new PsDocument(outPsStream, options, false);
 8
 9//Create a rectangle
10Shape rectangle = new Rectangle2D.Float(0, 0, 300, 200);
11
12//Set paint in the upper-level graphics state
13document.setPaint(Color.BLUE);
14
15//Save graphics state to return back to this state after the 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
21int fontSize = 120;
22Font font = new Font("Arial", Font.BOLD, fontSize);
23
24//Clip rectangle by text's outline
25document.clipText("ABC", font, 20, fontSize + 10);		
26document.fill(rectangle);
27
28//Restore graphics state to the previous (upper) level
29document.writeGraphicsRestore();
30
31//Displace upper-level graphics state on 100 points to the right and 100 points to the bottom.
32document.translate(100, 100);
33
34BasicStroke stroke = new BasicStroke(2,
35        BasicStroke.CAP_BUTT,
36        BasicStroke.JOIN_MITER,
37        10.0f, new float []{5.0f}, 0.0f);
38
39document.setStroke(stroke);
40
41//Draw the rectangle in the current graphics state (has no clipping) above the clipped rectangle
42document.draw(rectangle);
43
44//Close the current page
45document.closePage();
46//Save the document
47document.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:

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.