Создание документов PS EPS XPS на C++

Aspose.Page for C++ является ценным дополнением к семейству продуктов Aspose.Page, которое разработано для работы с документами PostScript (PS/EPS) и XPS с использованием C++. Aspose.Page для C++ — это собственная библиотека C++ для создания новых файлов XPS, а также для изменения и преобразования существующих документов PostScript и XPS программным путем. API также позволяет работать со страницами и элементами, такими как холсты и глифы, в документах XPS. Кроме того, он поддерживает преобразование документов в PDF и растровые изображения. В этой статье показано, как выполнять следующие операции, связанные с документами XPS, с помощью Aspose.Page для C++.

  • Создайте новый документ XPS в C++
  • Редактировать существующий документ XPS в C++
  • Добавление страницы или документа в документ XPS на C++

Установка XPS API для C++

Aspose.Page для C++ размещен на NuGet, а также доступен в виде загружаемых двоичных файлов. Загружаемый пакет также содержит консольное приложение C++, содержащее исходный код основных примеров.

Создание XPS-документа на C++

Ниже приведены простые шаги для создания документа XPS, содержащего текст и изображение, с помощью Aspose.Page для C++.

  • Создайте объект класса XpsDocument.
  • Добавьте текст и изображение, используя объекты XpsGlyphs и XpsPath соответственно.
  • Сохраните документ методом Save.

В следующем примере кода показано, как создать XPS-документ на C++.

// Создайте новый объект XpsDocument.
auto doc = System::MakeObject<XpsDocument>();

// Добавить изображение
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 30,20 l 450.24,0 0,150.64 -350.24,0 Z"));
// Создайте матрицу, которую можно использовать для правильного позиционирования.
path->set_RenderTransform(doc->CreateMatrix(0.7f, 0.f, 0.f, 0.7f, 0.f, 20.f));
// Создать кисть изображения
path->set_Fill(doc->CreateImageBrush(u"QL_logo_color.tif", System::Drawing::RectangleF(0.f, 0.f, 450.24f, 150.64f), System::Drawing::RectangleF(50.f, 20.f, 450.68f, 150.48f)));

// Текст как нижний колонтитул
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 18.0f, System::Drawing::FontStyle::Regular, 40.f, 1015.f, u"Copyright &#xa9; 2006 QualityLogic, Inc.");
glyphs->set_Fill(textFill);
glyphs = doc->AddGlyphs(u"Arial", 15.0f, System::Drawing::FontStyle::Regular, 475.f, 1003.f, u"For information on QualityLogic XPS test products,");
glyphs->set_Fill(textFill);

// Сохранить как XPS
doc->Save(u"Create-XPS.xps");

Выход

Редактировать документ PS EPS XPS C++

Редактировать XPS-документ в C++

Ниже приведены шаги для редактирования существующего документа XPS:

  • Создайте объект класса XpsDocument и инициализируйте его, указав путь к документу XPS.
  • Получите доступ к элементам документа с помощью объекта XpsDocument.
  • Сохраните обновленный документ методом Save.

В следующем примере кода показано, как редактировать существующий документ XPS на C++.

// Загрузить XPS-документ
auto doc = System::MakeObject<XpsDocument>(u"Created-XPS.xps");
// Добавить пустую страницу в конец списка страниц
doc->AddPage();
// Вставить пустую страницу в начало списка страниц
doc->InsertPage(1, true); 
// Сохранить XPS-файл
doc->Save(u"Updated-XPS.xps");

Добавить страницу и документ в XPS на С++

Aspose.Page для C++ также позволяет добавлять страницы и несколько документов в документ XPS. Ниже приведены шаги для создания нового документа XPS и добавления дополнительной страницы и документа.

  • Создайте объект класса XpsDocument.
  • Используйте методы AddPage и AddDocument для добавления страницы и документа соответственно.
  • Используйте метод SelectActiveDocument, чтобы выбрать активный документ для обработки.
  • Добавьте текст или изображение в документ.
  • Сохраните документ.

В следующем примере кода показано, как добавить дополнительные страницы и документы в XPS с помощью C++.

// Новый документ (1 фиксированный документ с 1 страницей размера по умолчанию)
auto doc = System::MakeObject<XpsDocument>();
// Добавить 2-ю страницу в 1-й документ и сделать активным
doc->AddPage();
// Добавить 2-й документ с 1 страницей (3-я страница в файле)
doc->AddDocument(false);
// 2-я страница 1-го документа все еще активна
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 12.0f, System::Drawing::FontStyle::Regular, 200.f, 500.f, u"Text on Page 2 (Document 1),");
glyphs->set_Fill(textFill);
// Активировать 2-й документ
doc->SelectActiveDocument(2);
glyphs = doc->AddGlyphs(u"Arial", 12.0f, System::Drawing::FontStyle::Regular, 200.f, 500.f, u"Text on Document 2 (Page #3 in file),");
glyphs->set_Fill(textFill); 
// Сохранить XPS-файл
doc->Save(u"Create-XPS.xps");

Узнайте больше об Aspose.Page для C++

Вы можете узнать больше об Aspose.Page для C++, используя документацию и примеры исходного кода, доступные на GitHub.