Crear documentos PS EPS XPS en C++

Aspose.Page for C++ es una valiosa adición a Aspose.Page Product Family, que se desarrolló para la manipulación de documentos PostScript (PS/EPS) y XPS mediante C++. Aspose.Page for C++ es una biblioteca nativa de C++ para crear nuevos archivos XPS, así como para modificar y convertir los documentos PostScript y XPS existentes mediante programación. La API también le permite trabajar con las páginas y elementos como lienzos y glifos en los documentos XPS. Además, admite la conversión de documentos a PDF e imágenes de trama. Este artículo muestra cómo realizar las siguientes operaciones relacionadas con documentos XPS usando Aspose.Page for C++.

  • Crear un nuevo documento XPS en C++
  • Edite un documento XPS existente en C++
  • Agregar una página o documento a un documento XPS en C++

Instalación de XPS API para C++

Aspose.Page for C++ está alojado en NuGet y está disponible como binarios descargables. El paquete descargable también contiene una aplicación de consola C++ que contiene el código fuente de ejemplos básicos.

Crear un documento XPS en C++

Los siguientes son los pasos simples para crear un documento XPS que contenga texto e imagen usando Aspose.Page for C++.

  • Cree un objeto de la clase XpsDocument.
  • Agregue texto e imagen usando los objetos XpsGlyphs y XpsPath respectivamente.
  • Guarde el documento utilizando el método Save.

El siguiente ejemplo de código muestra cómo crear un documento XPS en C++.

// Crear un nuevo objeto XpsDocument
auto doc = System::MakeObject<XpsDocument>();

// Añadir imagen
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 30,20 l 450.24,0 0,150.64 -350.24,0 Z"));
// Cree una matriz que pueda usarse para un posicionamiento adecuado.
path->set_RenderTransform(doc->CreateMatrix(0.7f, 0.f, 0.f, 0.7f, 0.f, 20.f));
// Crear pincel de imagen
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)));

// Texto como pie de página
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);

// Guardar como XPS
doc->Save(u"Create-XPS.xps");

Producción

Editar documento PS EPS XPS C++

Editar un documento XPS en C++

Los siguientes son los pasos para editar un documento XPS existente:

  • Cree un objeto de la clase XpsDocument e inicialícelo con la ruta del documento XPS.
  • Acceda a los elementos del documento utilizando el objeto XpsDocument.
  • Guarde el documento actualizado utilizando el método Save.

El siguiente ejemplo de código muestra cómo editar un documento XPS existente en C++.

// Cargar documento XPS
auto doc = System::MakeObject<XpsDocument>(u"Created-XPS.xps");
// Agregar página vacía al final de la lista de páginas
doc->AddPage();
// Insertar una página vacía al principio de la lista de páginas
doc->InsertPage(1, true); 
// Guardar archivo XPS
doc->Save(u"Updated-XPS.xps");

Agregar página y documento a XPS en C++

Aspose.Page for C++ también le permite agregar páginas y varios documentos en un documento XPS. Los siguientes son los pasos para crear un nuevo documento XPS y agregar una página y un documento adicionales.

  • Cree un objeto de la clase XpsDocument.
  • Use los métodos AddPage y AddDocument para agregar una página y un documento respectivamente.
  • Utilice el método SelectActiveDocument para seleccionar el documento activo para su procesamiento.
  • Agregue texto o imagen al documento.
  • Guarde el documento.

El siguiente ejemplo de código muestra cómo agregar páginas y documentos adicionales a XPS usando C++.

// Nuevo documento (1 documento fijo con 1 página de tamaño predeterminado)
auto doc = System::MakeObject<XpsDocument>();
// Agregue la segunda página en el primer documento y active
doc->AddPage();
// Agregar segundo documento con 1 página (tercera página en el archivo)
doc->AddDocument(false);
// La segunda página del primer documento todavía está activa
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);
// Activar segundo documento
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); 
// Guardar archivo XPS
doc->Save(u"Create-XPS.xps");

Más información sobre Aspose.Page for C++

Puede obtener más información sobre Aspose.Page for C++ utilizando la documentación y los ejemplos de código fuente disponibles en GitHub.