Робота зі сторінками в PostScript | C++

Додайте сторінки до документа PS

Aspose.Page для C++ пропонує два способи додавання сторінок до об’єкта PsDocument.

Наступний фрагмент коду створює 2-сторінковий документ PS за 8 кроків:

  1. Створіть вихідний потік для отриманого файлу PS.
  2. Створіть об’єкт PsSaveOptions із параметрами за замовчуванням.
  3. Створіть 2-сторінковий PsDocument із уже створеним вихідним потоком і параметрами збереження.
  4. Відкрийте першу сторінку із стандартним розміром сторінки документа (A4 у книжковій орієнтації).
  5. Закрийте сторінку.
  6. Відкрийте другу сторінку з новим розміром.
  7. Закрийте сторінку.
  8. Збережіть документ.
 1    // The path to the documents directory.
 2    System::String dataDir = RunExamples::GetDataDir_WorkingWithPages();
 3    
 4    //Create output stream for PostScript document
 5    {
 6        System::SharedPtr<System::IO::Stream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"document1.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 2-paged PS Document
17            System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(outPsStream, options, 2);
18            
19            //Add the first page
20            document->OpenPage();
21            
22            //Add content
23            
24            //Close the first page
25            document->ClosePage();
26            
27            //Add the second page with different size
28            document->OpenPage(400.0f, 700.0f);
29            
30            //Add content
31            
32            //Close the second page
33            document->ClosePage();
34            
35            //Save the document
36            document->Save();
37        }
38        catch(...)
39        {
40            __dispose_guard_0.SetCurrentException(std::current_exception());
41        }
42    }

Див. роботу зі сторінками в документах PS у .NET або [Java](/page/{{lang.url -fragment}}java/ps/working-with-pages/).

Наступний фрагмент коду також створює 2-сторінковий документ PS, але з 7 кроками:

  1. Створіть вихідний потік для отриманого файлу PS.
  2. Створіть об’єкт PsSaveOptions із параметрами за замовчуванням.
  3. Створіть багатосторінковий PsDocument із уже створеним вихідним потоком і параметрами збереження. У цьому випадку перша сторінка вже відкрита, і її розмір відповідає стандартному розміру сторінки документа (A4 у книжковій орієнтації).
  4. Закрийте сторінку.
  5. Відкрийте другу сторінку з новим розміром.
  6. Закрийте сторінку.
  7. Збережіть документ. Цей спосіб додавання сторінок корисний, коли документ складається з 1 сторінки або невідомо, чи буде це 1- чи 2-сторінковий документ.
 1    // The path to the documents directory.
 2    System::String dataDir = RunExamples::GetDataDir_WorkingWithPages();
 3    
 4    //Create output stream for PostScript document
 5    {
 6        System::SharedPtr<System::IO::Stream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"document2.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            //Set variable that indicates if resulting PostScript document will be multipaged
17            bool multiPaged = true;
18            
19            // Create new multipaged PS Document with one page opened
20            System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(outPsStream, options, multiPaged);
21            
22            //Add content
23            
24            //Close the first page
25            document->ClosePage();
26            
27            //Add the second page with different size
28            document->OpenPage(500.0f, 300.0f);
29            
30            //Add content
31            
32            //Close the second page
33            document->ClosePage();
34            
35            //Save the document
36            document->Save();
37        }
38        catch(...)
39        {
40            __dispose_guard_0.SetCurrentException(std::current_exception());
41        }
42    }

Ви можете завантажити приклади та файли даних із GitHub.

Have any questions about Aspose.Page?



Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.