Criar documentos PS EPS XPS em C++

Aspose.Page for C++ é uma adição valiosa à Aspose.Page Product Family que é desenvolvida para manipulação de documentos PostScript (PS/EPS) e XPS usando C++. Aspose.Page for C++ é uma biblioteca nativa de C++ para criar novos arquivos XPS, bem como modificar e converter os documentos PostScript e XPS existentes programaticamente. A API também permite trabalhar com as páginas e elementos como telas e glifos nos documentos XPS. Além disso, ele suporta a conversão de documentos em PDF e imagens raster. Este artigo demonstra como executar as seguintes operações relacionadas a documentos XPS usando Aspose.Page para C++.

  • Criar um novo documento XPS em C++
  • Editar um documento XPS existente em C++
  • Adicionar uma página ou documento a um documento XPS em C++

Instalação da API XPS para C++

O Aspose.Page para C++ está hospedado no NuGet e também está disponível para download binaries. O pacote para download também contém um aplicativo de console C++ contendo o código-fonte de exemplos básicos.

Criar um documento XPS em C++

A seguir estão as etapas simples para criar um documento XPS contendo texto e imagem usando Aspose.Page para C++.

O exemplo de código a seguir mostra como criar um documento XPS em C++.

// Criar um novo objeto XpsDocument
auto doc = System::MakeObject<XpsDocument>();

// Adicionar imagem
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 30,20 l 450.24,0 0,150.64 -350.24,0 Z"));
// Crie uma matriz que possa ser usada para o posicionamento adequado.
path->set_RenderTransform(doc->CreateMatrix(0.7f, 0.f, 0.f, 0.7f, 0.f, 20.f));
// Criar pincel de imagem
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 rodapé
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);

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

Resultado

Editar documento PS EPS XPS C++

Editar um documento XPS em C++

A seguir estão as etapas para editar um documento XPS existente:

  • Crie um objeto da classe XpsDocument e inicialize-o com o caminho do documento XPS.
  • Acesse os elementos do documento usando o objeto XpsDocument.
  • Salve o documento atualizado usando o método Salvar.

O exemplo de código a seguir mostra como editar um documento XPS existente em C++.

// Carregar documento XPS
auto doc = System::MakeObject<XpsDocument>(u"Created-XPS.xps");
// Adicionar página vazia no final da lista de páginas
doc->AddPage();
// Inserir uma página vazia no início da lista de páginas
doc->InsertPage(1, true); 
// Salvar arquivo XPS
doc->Save(u"Updated-XPS.xps");

Adicionar página e documento ao XPS em C++

O Aspose.Page para C++ também permite adicionar páginas e vários documentos em um documento XPS. A seguir estão as etapas para criar um novo documento XPS e adicionar uma página e um documento adicionais.

  • Crie um objeto da classe XpsDocument.
  • Use os métodos AddPage e AddDocument para adicionar página e documento respectivamente.
  • Use o método SelectActiveDocument para selecionar o documento ativo para processamento.
  • Adicione texto ou imagem ao documento.
  • Salve o documento.

O exemplo de código a seguir mostra como adicionar páginas e documentos adicionais ao XPS usando C++.

// Novo documento (1 documento fixo com 1 página de tamanho padrão)
auto doc = System::MakeObject<XpsDocument>();
// Adicione a 2ª página no 1º documento e defina como ativo
doc->AddPage();
// Adicionar 2º documento com 1 página (3ª página no arquivo)
doc->AddDocument(false);
// A 2ª página do 1º documento ainda está ativa
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);
// Ativar 2º 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); 
// Salvar arquivo XPS
doc->Save(u"Create-XPS.xps");

Saiba mais sobre o Aspose.Page para C++

Você pode aprender mais sobre Aspose.Page para C++ usando a documentação e os exemplos de código-fonte disponíveis no GitHub.