Arbeiten mit Formen in PostScript | C++

Fügen Sie Formen im PS-Dokument hinzu

Rechteck zu PS hinzufügen

Um mit der Bibliothek Aspose.Page für C++ ein Rechteck zu PsDocument hinzuzufügen, sollten wir die folgenden Schritte ausführen:

  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 aus dem Rechteck ein Rechteck System.Drawing.Drawing2D.GraphicsPath.
  5. Stellen Sie einen Paint auf den aktuellen Grafikstatus von PsDocument ein.
  6. Füllen Sie den Rechteckpfad.
  7. Schließen Sie die Seite.
  8. Speichern Sie das Dokument.

Wenn wir ein Rechteck streichen (umreißen) müssen, sind die ersten 4 und die letzten 2 Schritte gleich, aber die Punkte 5 und 6 lauten:

  1. Stellen Sie den Strich auf den aktuellen Grafikstatus von PsDocument ein.

  2. Zeichnen (umreißen) Sie den rechteckigen Pfad.

 1    // The path to the documents directory.
 2    System::String dataDir = RunExamples::GetDataDir_WorkingWithShapes();
 3    
 4    //Create output stream for PostScript document
 5    {
 6        System::SharedPtr<System::IO::Stream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"AddRectangle_outPS.ps", System::IO::FileMode::Create);
 7        // Clearing resources under 'using' statement
 8        System::Details::DisposeGuard<1> __dispose_guard_0({ outPsStream});
 9        // ------------------------------------------
10        
11        try
12        {
13            //Create save options with A4 size
14            System::SharedPtr<PsSaveOptions> options = System::MakeObject<PsSaveOptions>();
15            
16            // Create new 1-paged PS Document
17            System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(outPsStream, options, false);
18            
19            //Create graphics path from the first rectangle
20            System::SharedPtr<System::Drawing::Drawing2D::GraphicsPath> path = System::MakeObject<System::Drawing::Drawing2D::GraphicsPath>();
21            path->AddRectangle(System::Drawing::RectangleF(250.0f, 100.0f, 150.0f, 100.0f));
22            //Set paint
23            document->SetPaint(System::MakeObject<System::Drawing::SolidBrush>(System::Drawing::Color::get_Orange()));
24            //Fill the rectangle
25            document->Fill(path);
26            
27            //Create graphics path from the second rectangle
28            path = System::MakeObject<System::Drawing::Drawing2D::GraphicsPath>();
29            path->AddRectangle(System::Drawing::RectangleF(250.0f, 300.0f, 150.0f, 100.0f));
30            //Set stroke
31            document->SetStroke(System::MakeObject<System::Drawing::Pen>(System::MakeObject<System::Drawing::SolidBrush>(System::Drawing::Color::get_Red()), 3.0f));
32            //Stroke (outline) the rectangle
33            document->Draw(path);
34            
35            //Close current page
36            document->ClosePage();
37            
38            //Save the document
39            document->Save();
40        }
41        catch(...)
42        {
43            __dispose_guard_0.SetCurrentException(std::current_exception());
44        }
45    }

Weitere Informationen finden Sie unter „Arbeiten mit Formen in PS-Dokumenten“ in .NET oder Java.


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

Rechteck hinzufügen

Ellipse zu PS hinzufügen

Um eine Ellipse zu PsDocument hinzuzufügen, sind ebenfalls 8 Schritte erforderlich:

  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 aus dem Rechteck eine Ellipse System.Drawing.Drawing2D.GraphicsPath.
  5. Stellen Sie Paint auf den aktuellen Grafikstatus von PsDocument ein.
  6. Füllen Sie den Ellipsenpfad.
  7. Schließen Sie die Seite.
  8. Speichern Sie das Dokument.

Wenn wir eine Ellipse streichen (umreißen) müssen, sind die ersten 4 und die letzten 2 Schritte gleich, aber die Punkte 5 und 6 lauten:

  1. Setzen Sie den Strich auf den aktuellen Grafikstatus von PsDocument.
  2. Stroke (outline) the ellipse path.
 1    // The path to the documents directory.
 2    System::String dataDir = RunExamples::GetDataDir_WorkingWithShapes();
 3    
 4    //Create output stream for PostScript document
 5    {
 6        System::SharedPtr<System::IO::Stream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"AddEllipse_outPS.ps", System::IO::FileMode::Create);
 7        // Clearing resources under 'using' statement
 8        System::Details::DisposeGuard<1> __dispose_guard_0({ outPsStream});
 9        // ------------------------------------------
10        
11        try
12        {
13            //Create save options with A4 size
14            System::SharedPtr<PsSaveOptions> options = System::MakeObject<PsSaveOptions>();
15            
16            // Create new 1-paged PS Document
17            System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(outPsStream, options, false);
18            
19            //Create graphics path from the first ellipse
20            System::SharedPtr<System::Drawing::Drawing2D::GraphicsPath> path = System::MakeObject<System::Drawing::Drawing2D::GraphicsPath>();
21            path->AddEllipse(System::Drawing::RectangleF(250.0f, 100.0f, 150.0f, 100.0f));
22            //Set paint
23            document->SetPaint(System::MakeObject<System::Drawing::SolidBrush>(System::Drawing::Color::get_Orange()));
24            //Fill the ellipse
25            document->Fill(path);
26            
27            //Create graphics path from the second ellipse
28            path = System::MakeObject<System::Drawing::Drawing2D::GraphicsPath>();
29            path->AddEllipse(System::Drawing::RectangleF(250.0f, 300.0f, 150.0f, 100.0f));
30            //Set stroke
31            document->SetStroke(System::MakeObject<System::Drawing::Pen>(System::MakeObject<System::Drawing::SolidBrush>(System::Drawing::Color::get_Red()), 3.0f));
32            //Stroke (outline) the ellipse
33            document->Draw(path);
34            
35            //Close current page
36            document->ClosePage();
37            
38            //Save the document
39            document->Save();
40        }
41        catch(...)
42        {
43            __dispose_guard_0.SetCurrentException(std::current_exception());
44        }
45    }

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

Ellipse hinzufügen

Wie wir sehen können, kann jede Form, sowohl geschlossen als auch nicht geschlossen, die in System.Drawing.Drawing2D.GraphicsPath eingefügt werden kann, von PsDocument gefüllt oder gezeichnet werden. Es kann auch abgeschnitten werden, dies wird jedoch in einem anderen Artikel beschrieben.

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.