Вставить страницу в PS-файл

Решение C++ API для добавления страниц в файл PS

 

Существует два способа контролировать количество страниц вашего документа PostScript (PS) с помощью API Aspose.Page. Вы можете заранее указать точное количество страниц или создать одностраничный или многостраничный документ. Однако для добавления страниц одну за другой необходимо использовать методы OpenPage() и ClosePage(). Документы PS могут иметь страницы разных размеров, поэтому вы можете установить нужный размер с помощью OpenPage(). По умолчанию страницы имеют размер А4. Важно отметить, что вы можете управлять страницами только вновь созданных документов PS, а не существующих.

На этой странице мы покажем вам два варианта добавления страниц в файл PS с помощью Aspose.Page для C++. Но сначала вам необходимо:

  • Получите Aspose.Page для C++ API, который представляет собой многофункциональный, мощный и простой в использовании API C++ для манипулирования и преобразования документов.

  • Откройте диспетчер пакетов NuGet, найдите Aspose.Page.Cpp и установите. Вы также можете использовать следующую команду из консоли диспетчера пакетов.

Package Manager Console Command

    PM> Install-Package Aspose.Page.Cpp

Код C++ для добавления страниц в файл PS. Вариант 1.

Действия по добавлению страниц в файл PS. Вариант 1.

  1. Создайте путь к каталогу документов.
  2. Создайте выходной поток для полученного файла PS.
  3. Создайте параметры сохранения с размером А4.
  4. Создайте файл PS, используя PsDocument Class , выходной поток и количество страниц.
  5. Создайте пустую страницу с помощью метода OpenPage() .
  6. Добавьте содержимое на эту страницу и закройте его с помощью метода ClosePage() .
  7. Если вам нужно добавить страницу другого размера, используйте тот же метод OpenPage() с новым размер.
  8. Закройте страницу с помощью метода ClosePage() .
  9. Сохраните документ PS, используя метод Save() .
Добавляем изображения в PS
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir_WorkingWithPages();
//Create output stream for PostScript document
{
System::SharedPtr<System::IO::Stream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"document1.ps", System::IO::FileMode::Create);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ outPsStream});
// ------------------------------------------
try
{
//Create save options with A4 size
System::SharedPtr<PsSaveOptions> options = System::MakeObject<PsSaveOptions>();
// Create new 2-paged PS Document
System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(outPsStream, options, 2);
//Add the first page
document->OpenPage();
//Add content
//Close the first page
document->ClosePage();
//Add the second page with different size
document->OpenPage(400.0f, 700.0f);
//Add content
//Close the second page
document->ClosePage();
//Save the document
document->Save();
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}

Код C++ для добавления страниц в файл PS. Вариант 2.

Действия по добавлению страниц в файл PS. Вариант 2.

  1. Создайте путь к каталогу документов.
  2. Создайте выходной поток для полученного файла PS.
  3. Создайте параметры сохранения с размером А4.
  4. Создайте новый файл PS, используя PsDocument Class .
  5. Если вам нужно добавить страницу другого размера, используйте метод OpenPage() с новым размером.
  6. После добавления контента на страницы закройте их с помощью метода ClosePage() .
  7. Сохраните документ PS, используя метод Save() .
Добавляем изображения в PS
// The path to the documents directory.
System::String dataDir = RunExamples::GetDataDir_WorkingWithPages();
//Create output stream for PostScript document
{
System::SharedPtr<System::IO::Stream> outPsStream = System::MakeObject<System::IO::FileStream>(dataDir + u"document2.ps", System::IO::FileMode::Create);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ outPsStream});
// ------------------------------------------
try
{
//Create save options with A4 size
System::SharedPtr<PsSaveOptions> options = System::MakeObject<PsSaveOptions>();
//Set variable that indicates if resulting PostScript document will be multipaged
bool multiPaged = true;
// Create new multipaged PS Document with one page opened
System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(outPsStream, options, multiPaged);
//Add content
//Close the first page
document->ClosePage();
//Add the second page with different size
document->OpenPage(500.0f, 300.0f);
//Add content
//Close the second page
document->ClosePage();
//Save the document
document->Save();
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}

PS Формат файла PS

Формат PS является одним из форматов языка описания страниц (PDL). Он способен содержать как графическую, так и текстовую информацию на странице. Именно поэтому формат поддерживался большинством программ для редактирования изображений. Сам файл postscript является своеобразной инструкцией для принтеров. Он содержит информацию о том, что и как печатать со своей страницы.