Mesclar documentos XPS para PDF
Solução de API C++ para combinar vários arquivos XPS
O formato de arquivo XPS permite o armazenamento de vários documentos em um único arquivo e também pode conter várias páginas. Aspose.Page API Solution for C++ oferece a capacidade de mesclar vários arquivos em um, resultando em um arquivo XPS ou PDF que contém o conteúdo combinado de todos os arquivos originais.
Aqui você encontrará um exemplo de código de como usar a API para mesclar arquivos XPS. Para explorar como essa funcionalidade pode ser integrada a uma solução da Web ou usada para mesclagem de arquivos online, você pode experimentar a plataforma cruzada XPS Merger ferramenta.
Para mesclar arquivos PS e EPS, você precisa:
Aspose.Page para C++ API, que é uma API de manipulação e conversão de documentos rica em recursos, poderosa e fácil de usar para a plataforma C++.
Você pode baixar sua versão mais recente diretamente, basta abrir o gerenciador de pacotes NuGet, procurar por Aspose.Page.Cpp e instalar. Você também pode usar o seguinte comando no console do gerenciador de pacotes.
Package Manager Console Command
PM> Install-Package Aspose.Page
Etapas para mesclar vários arquivos XPS em PDF com C++.
- Defina o caminho para o diretório de documentos.
- Inicialize a saída PDF e os fluxos de entrada do arquivo XPS.
- Crie uma instância de XpsDocument a partir do fluxo de entrada criado anteriormente.
- Inicialize o objeto de opções com os parâmetros TextCompression, ImageCompression, JpegQualityLevel para o arquivo de saída por meio de PdfSaveOptions Turma.
- Usando a classe PdfDevice , crie um dispositivo de renderização para o formato PDF.
- Mesclar arquivos XPS para produzir documento XPS.
Código C++ para mesclar XPS para PDF
using Aspose::Page::XPS;
using Aspose::Page::IO;
using Aspose::Page::Presentation::Pdf;
// Input file
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(RunExamples::outDir() + u"XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
// ------------------------------------------
try {
System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(RunExamples::dataDir() + u"input xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
// ------------------------------------------
try
{
// Load XPS document form the stream
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
// or load XPS document directly from file. No xpsStream is needed then.
// XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());
// Initialize options object with necessary parameters.
System::SharedPtr<Aspose::Page::Xps::Presentation::Pdf::PdfSaveOptions> options = [&] { auto tmp_0 = System::MakeObject<Aspose::Page::Xps::Presentation::Pdf::PdfSaveOptions>(); tmp_0->set_JpegQualityLevel(100); tmp_0->set_ImageCompression(Aspose::Page::Xps::Presentation::Pdf::PdfImageCompression::Jpeg); tmp_0->set_TextCompression(Aspose::Page::Xps::Presentation::Pdf::PdfTextCompression::Flate); tmp_0->set_PageNumbers(System::MakeArray<int32_t>({ 1, 2, 6 })); return tmp_0; }();
// Create rendering device for PDF format
System::SharedPtr<Aspose::Page::Xps::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::Xps::Presentation::Pdf::PdfDevice>(pdfStream);
// Create an array of XPS files that will be merged with the first one
System::ArrayPtr<System::String> filesForMerge = System::MakeArray<System::String>({dataDir() + u"input2.xps", dataDir() + u"input3.xps"});
document->Merge(filesForMerge, device, options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
Etapas para mesclar vários arquivos XPS em um único arquivo com C++.
- Inicialize os fluxos de entrada e saída do XPS.
- Crie uma matriz de arquivos XPS para serem mesclados com o primeiro.
- Crie uma instância de XpsDocument a partir do fluxo de entrada criado anteriormente.
- Mesclar arquivos XPS para produzir documento XPS.
Código C++ para mesclar XPS a XPS
// Output stream
System::SharedPtr<System::IO::Stream> outStream = System::IO::File::Open(RunExamples::outDir() + u"mergedXPSfiles.xps", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ outStream });
// ------------------------------------------
try {
System::SharedPtr<System::IO::Stream> inStream = System::IO::File::Open(RunExamples::dataDir() + u"input.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ inStream });
// ------------------------------------------
try
{
// Load XPS document form the stream
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
// or load XPS document directly from file. No xpsStream is needed then.
// XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());
// Create an array of XPS files that will be merged with the first one
System::ArrayPtr<System::String> filesForMerge = System::MakeArray<System::String>({dataDir() + u"input2.xps", dataDir() + u"input3.xps"});
document->Merge(filesForMerge, outStream);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
XPS O que é XPS Formato de Arquivo
O formato XPS é semelhante ao formato PDF. Ambos são formatos de linguagem de descrição de página (PDL). EPS é baseado em HTML e não em linguagem PostScript. O arquivo .eps é capaz de conter uma marcação da estrutura do documento junto com as informações de como o documento ficaria. Há também instruções adicionadas sobre como imprimir e renderizar o documento. A característica do formato é que ele corrige a descrição do documento, o que significa que ele terá a mesma aparência, não importa quem e de qual sistema operacional o abra.