Arbeiten mit Dokumenten in PostScript | C++
PS-Dokument erstellen
Aspose.Page für C++ bietet zwei Konstruktoren zum Erstellen der Klasse PsDocument. Der folgende Codeausschnitt erstellt ein einseitiges PS-Dokument:
1 // The path to the documents directory.
2 System::String dir = RunExamples::GetDataDir_WorkingWithDocument();
3
4 //Create output stream for PostScript document
5 {
6 System::SharedPtr<System::IO::Stream> outPsStream = System::MakeObject<System::IO::FileStream>(dir + u"document.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
14 System::SharedPtr<PsSaveOptions> options = System::MakeObject<PsSaveOptions>();
15 //If you want to aassign page size other than A4, set page size in options
16 options->set_PageSize(PageConstants::GetSize(PageConstants::SIZE_A4(), PageConstants::ORIENTATION_PORTRAIT()));
17 //If you want to aassign page margins other empty, set page margins in options
18 options->set_Margins(PageConstants::GetMargins(PageConstants::MARGINS_ZERO()));
19 //If you plan to use fonts that located in non system folders, set additional fonts folders in options
20 options->set_AdditionalFontsFolders(System::MakeArray<System::String>({dir}));
21
22 //Set variable that indicates if resulting PostScript document will be multipaged
23 bool multiPaged = false;
24
25 // Create new multipaged PS Document with one page opened
26 System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(outPsStream, options, multiPaged);
27
28 //Close current page
29 document->ClosePage();
30 //Save the document
31 document->Save();
32 }
33 catch(...)
34 {
35 __dispose_guard_0.SetCurrentException(std::current_exception());
36 }
37 }
Wenn das PS-Dokument mehrseitig sein soll, setzen Sie die Variable multiPaged auf true.
Ein weiterer Konstruktor ermöglicht das Erstellen eines PsDocument-Objekts mit einer definierten Anzahl von Seiten:
1//Create output stream for PostScript document
2using (Stream outPsStream = new FileStream(dir + "document.ps", FileMode.Create))
3{
4 //Create save options
5 PsSaveOptions options = new PsSaveOptions();
6
7 // Create new multipaged PS Document with 2 pages. These two pages are not created. It must be added by AddPage() method.
8 PsDocument document = new PsDocument(outPsStream, options, 2);
9
10 //Adding pages and it's content
11
12 //Save the document
13 document.Save();
14}
15 // The path to the documents directory.
16 System::String dir = RunExamples::GetDataDir_WorkingWithDocument();
17
18 //Create output stream for PostScript document
19 {
20 System::SharedPtr<System::IO::Stream> outPsStream = System::MakeObject<System::IO::FileStream>(dir + u"document.ps", System::IO::FileMode::Create);
21 // Clearing resources under 'using' statement
22 System::Details::DisposeGuard<1> __dispose_guard_0({ outPsStream});
23 // ------------------------------------------
24
25 try
26 {
27 //Create save options
28 System::SharedPtr<PsSaveOptions> options = System::MakeObject<PsSaveOptions>();
29
30 // Create new multipaged PS Document with 2 pages. These two pages are not created. It must be added by AddPage() method.
31 System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(outPsStream, options, 2);
32
33 //Adding pages and it's content
34
35 //Save the document
36 document->Save();
37 }
38 catch(...)
39 {
40 __dispose_guard_0.SetCurrentException(std::current_exception());
41 }
42 }
Siehe „Arbeiten mit PS-Dokumenten“ in Java.
Schauen wir uns die Klasse PsSaveOptions an, die mögliche Optionen kapselt, die beim Erstellen des richtigen PostScript-Dokuments helfen.
SaveFormat gibt ein Ausgabeformat von Dokumenten an. Kann PS oder EPS sein. In der Aspose.Page-Bibliothek spiegeln sich Unterschiede zwischen diesen beiden Formaten nur in PostScript-Kommentaren und einer Dateierweiterung wider. Auch gemäß der EPS-Dateispezifikation sollten EPS-Dateien einseitig sein. Standardmäßig wird das PS-Format verwendet.
PageSize gibt die Größe der Seiten im PS-Dokument an. Bei Bedarf können wir jedoch jeder Seite unterschiedliche Seitengrößen zuweisen. Die Seitengröße kann aus der Klasse PageConstants wie im folgenden Beispiel abgerufen werden:
1 options->set_PageSize(PageConstants::GetSize(PageConstants::SIZE_International(), PageConstants::ORIENTATION_PORTRAIT()));
Die Standardseitengröße ist „A4“ in der Ausrichtung „Hochformat“.
- Ränder gibt leere Felder zwischen den Seitenrändern und dem linken, oberen, rechten und unteren Rand des Seiteninhalts an. Es kann aus der PageConstants-Klasse abgerufen werden.
1 options->set_Margins(PageConstants::GetMargins(PageConstants::MARGINS_SMALL())); // 20 points for each margin
Die Standardränder sind „NULL“ (0, 0, 0, 0).
- BackGroundColor gibt eine Farbe des Seitenhintergrunds an. Kann zugewiesen werden als:
1 options->set_BackgroundColor(Color::FromArgb(211, 8, 48));
oder:
1 options->set_BackgroundColor(System::Drawing::Color::get_Yellow());
Der Standardwert ist „null“, was bedeutet, dass kein Hintergrund vorhanden ist.
EmbedFonts steuert das Verhalten von PsDocument beim Speichern in der Datei. Bei „false“ werden verwendete Schriftarten nicht in die PS-Datei geschrieben. In diesem Fall gibt der PostScript-Interpreter einen Fehler aus, wenn die verwendete Schriftart nicht in den Systemordnern auf dem Zielhost gefunden werden kann.
EmbedFontsAs steuert die Art und Weise, wie Schriftarten in die PS-Datei eingebettet werden. Derzeit funktionieren zwei Möglichkeiten: TrueType- und Type3-Schriftformate. Der Wert kann mit Hilfe der Klasse FontConstants wie folgt festgelegt werden:
1 options->set_EmbedFontsAs(FontsConstants::EMBED_FONTS_TYPE3);
Der Standardwert ist „TrueType“.
JpegQualityLevel gibt einen Grad der Komprimierung/Qualität der Bilder im resultierenden PS-Dokument an. Je mehr Qualität erforderlich ist, desto geringer ist die Komprimierung und umgekehrt. Die minimale Qualität ist 0 und die maximale Qualität 100. Der Standardwert ist 75.
AdditionalFontsFolder gibt Speicherorte an, an denen Schriftarten zu finden sind. Systemschriftartenordner sind standardmäßig immer enthalten.
Debug ermöglicht die Ausgabe von Debug-Informationen an die Konsole. Der Standardwert ist false.
Sie können Beispiele und Datendateien herunterladen von GitHub.