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++.
- Crie um objeto da classe XpsDocument.
- Adicione texto e imagem usando objetos XpsGlyphs e XpsPath respectivamente.
- Salve o documento usando o método Salvar.
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 © 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 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.