Lavorare con i documenti in PostScript | C++
Crea documento PS
Aspose.Page per C++ offre due costruttori per creare la classe PsDocument. Il seguente frammento di codice crea un documento PS di una pagina:
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 }
Se si prevede che il documento PS sia multipagina, impostare la variabile multiPaged su true.
Un altro costruttore consente di creare un oggetto PsDocument con un numero definito di pagine:
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 }
Vedi Lavorare con i documenti PS in Java.
Diamo un’occhiata alla classe PsSaveOptions che incapsula le possibili opzioni che aiutano a creare il documento PostScript corretto.
SaveFormat specifica un formato di output per i documenti. Può essere PS o EPS. Nella libreria Aspose.Page, le differenze tra questi due formati si riflettono solo nei commenti PostScript e nell’estensione del file. Inoltre, in conformità con le specifiche dei file EPS, i file EPS devono essere composti da una sola pagina. Il formato PS è utilizzato per impostazione predefinita.
PageSize specifica la dimensione delle pagine nel documento PS. Tuttavia, è possibile assegnare dimensioni di pagina diverse per ogni pagina, se necessario. La dimensione della pagina può essere ottenuta dalla classe PageConstants come nel seguente esempio:
1 options->set_PageSize(PageConstants::GetSize(PageConstants::SIZE_International(), PageConstants::ORIENTATION_PORTRAIT()));
Il formato di pagina predefinito è “A4” con orientamento “Verticale”.
- Margini specifica i campi vuoti tra i margini della pagina e i bordi sinistro, superiore, destro e inferiore del contenuto della pagina. Può essere ottenuto dalla classe PageConstants.
1 options->set_Margins(PageConstants::GetMargins(PageConstants::MARGINS_SMALL())); // 20 points for each margin
I margini predefiniti sono “ZERO” (0, 0, 0, 0).
- BackGroundColor specifica il colore di sfondo della pagina. Può essere assegnato come:
1 options->set_BackgroundColor(Color::FromArgb(211, 8, 48));
O:
1 options->set_BackgroundColor(System::Drawing::Color::get_Yellow());
Il valore predefinito è “null”, ovvero senza sfondo.
EmbedFonts controlla il comportamento di PsDocument durante il salvataggio nel file. Se impostato su “false”, i font utilizzati non verranno scritti nel file PS. In questo caso, l’interprete PostScript genererà un errore se il font utilizzato non viene trovato nelle cartelle di sistema dell’host di destinazione.
EmbedFontsAs controlla il modo in cui i font verranno incorporati nel file PS. Al momento sono disponibili due modalità: TrueType e Type3. Il valore può essere impostato tramite la classe FontConstants come segue:
1 options->set_EmbedFontsAs(FontsConstants::EMBED_FONTS_TYPE3);
Il valore predefinito è “TrueType”.
JpegQualityLevel specifica un livello di compressione/qualità delle immagini nel documento PS risultante. Maggiore è la qualità richiesta, minore sarà la compressione e viceversa. La qualità minima è 0 e quella massima è 100. Il valore predefinito è 75.
AdditionalFontsFolder specifica le posizioni in cui trovare i font. Le cartelle di sistema dei font sono sempre incluse per impostazione predefinita.
Debug consente di inviare informazioni di debug alla console. Il valore predefinito è false.
È possibile scaricare esempi e file di dati da GitHub.