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:
- 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 aus dem Rechteck ein Rechteck System.Drawing.Drawing2D.GraphicsPath.
- Stellen Sie einen Paint auf den aktuellen Grafikstatus von PsDocument ein.
- Füllen Sie den Rechteckpfad.
- Schließen Sie die Seite.
- 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:
Stellen Sie den Strich auf den aktuellen Grafikstatus von PsDocument ein.
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 }
Das Ergebnis der Ausführung dieses Codes wird wie folgt angezeigt:
Ellipse zu PS hinzufügen
Um eine Ellipse zu PsDocument hinzuzufügen, sind ebenfalls 8 Schritte erforderlich:
- 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 aus dem Rechteck eine Ellipse System.Drawing.Drawing2D.GraphicsPath.
- Stellen Sie Paint auf den aktuellen Grafikstatus von PsDocument ein.
- Füllen Sie den Ellipsenpfad.
- Schließen Sie die Seite.
- 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:
- Setzen Sie den Strich auf den aktuellen Grafikstatus von PsDocument.
- 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:
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.