PostScript でのドキュメント操作 | C++

Contents
[ Hide Show ]

PSドキュメントの作成

Aspose.Page for C++ には、 PsDocument クラスを作成するための2つのコンストラクターが用意されています。次のコードスニペットは、1ページのPSドキュメントを作成します。

 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    }

PSドキュメントを複数ページに分割する場合は、multiPaged 変数を true に設定してください。

別のコンストラクタを使用すると、定義したページ数を持つ PsDocument オブジェクトを作成できます。

 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    }

PSドキュメントの操作については、 Java を参照してください。

適切なPostScriptドキュメントを作成するためのオプションをカプセル化した PsSaveOptions クラスを見てみましょう。

1    options->set_PageSize(PageConstants::GetSize(PageConstants::SIZE_International(), PageConstants::ORIENTATION_PORTRAIT()));

Tデフォルトのページサイズは「A4」で、印刷方向は「縦」です。

1    options->set_Margins(PageConstants::GetMargins(PageConstants::MARGINS_SMALL())); // 20 points for each margin

デフォルトの余白は「ゼロ」(0, 0, 0, 0)です。

1    options->set_BackgroundColor(Color::FromArgb(211, 8, 48));

または:

1    options->set_BackgroundColor(System::Drawing::Color::get_Yellow());

デフォルト値は「null」で、背景なしを意味します。

1    options->set_EmbedFontsAs(FontsConstants::EMBED_FONTS_TYPE3);

デフォルト値は「TrueType」です。

サンプルとデータ ファイルは GitHub からダウンロードできます。

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.