Mesclar documentos PS para PDF

Solução de API C++ para combinar vários arquivos PostScript

 

O formato de arquivo PostScript pode conter várias páginas, mas não tem a capacidade de combinar vários arquivos em um único documento como o formato XPS. A solução Aspose.Page API para C++ oferece a funcionalidade de mesclar vários arquivos PS ou EPS em um documento PDF.

O exemplo de código a seguir demonstra como mesclar arquivos PostScript usando C++. Se você precisa aprender como esta funcionalidade pode ser integrada em uma solução web ou para mesclar arquivos online, você pode tentar a ferramenta multiplataforma PS Merger .

Para mesclar arquivos PS e EPS, precisamos:

  • 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 arquivos PostScript com C++

  1. Inicialize a saída PDF e os fluxos de entrada PostScript.
  2. Crie uma matriz de arquivos PS para mesclar.
  3. Use a classe PdfSaveOptions para especificar os parâmetros necessários. Esta classe permite definir parâmetros adicionais durante a mesclagem.
  4. Crie uma instância de PdfDevice a partir do fluxo de saída criado anteriormente e especifique o tamanho e o formato da imagem.
  5. Mesclar os arquivos. Para saber mais sobre essa funcionalidade, acesse Aspose.Page Documentação .

Código C++ para mesclar PS para PDF

    using Aspose::Page::IO;
    using Aspose::Page::Presentation::Pdf;
    // Initialize PDF output stream
    System::SharedPtr<System::IO::FileStream> pdfStream = System::MakeObject<System::IO::FileStream>(outDir() + u"outputPDF_out.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
    
    // Initialize PostScript input stream
    System::SharedPtr<System::IO::FileStream> psStream = System::MakeObject<System::IO::FileStream>(dataDir() + u"input.ps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
    System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(psStream);

    // Create an array of PostScript files that will be merged with the first one
    System::ArrayPtr<System::String> filesForMerge = System::MakeArray<System::String>({dataDir() + u"input2.ps", dataDir() + u"input3.ps"});
 
    //Initialize options object with necessary parameters.
    System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>(suppressErrors);
    // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included.
    options->set_AdditionalFontsFolders(System::MakeArray<System::String>({ u"{FONT_FOLDER}" }));

    // Default page size is 595x842 and it is not mandatory to set it in PdfDevice
    System::SharedPtr<Aspose::Page::EPS::Device::PdfDevice> device = System::MakeObject<Aspose::Page::EPS::Device::PdfDevice>(pdfStream);


    {
	    auto __finally_guard_0 = ::System::MakeScopeGuard([&psStream, &pdfStream]()
	    {
		    psStream->Close();
		    pdfStream->Close();
	    });

	    try
	    {
		    document->Merge(filesForMerge, device, options);
	    }
	    catch (...)
	    {
		    throw;
	    }
    }

Mesclar arquivos PostScript encapsulados com C++

Para mesclar EPS para PDF, você precisará executar as mesmas etapas da mesclagem de PS para PDF. Para aprender um exemplo de código mais detalhado, acesse Aspose.Page Documentação .

Código C++ para mesclar EPS para PDF

    // Initialize PDF output stream
    System::SharedPtr<System::IO::FileStream> pdfStream = System::MakeObject<System::IO::FileStream>(outDir() + u"outputPDF_out.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
    
    // Initialize EPS input stream
    System::SharedPtr<System::IO::FileStream> psStream = System::MakeObject<System::IO::FileStream>(dataDir() + u"input.eps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
    System::SharedPtr<PsDocument> document = System::MakeObject<PsDocument>(psStream);

    // Create an array of EPS files that will be merged with the first one
    System::ArrayPtr<System::String> filesForMerge = System::MakeArray<System::String>({dataDir() + u"input2.eps", dataDir() + u"input3.eps"});
 
    //Initialize options object with necessary parameters.
    System::SharedPtr<PdfSaveOptions> options = System::MakeObject<PdfSaveOptions>(suppressErrors);
    // If you want to add special folder where fonts are stored. Default fonts folder in OS is always included.
    options->set_AdditionalFontsFolders(System::MakeArray<System::String>({ u"{FONT_FOLDER}" }));

    // Default page size is 595x842 and it is not mandatory to set it in PdfDevice
    System::SharedPtr<Aspose::Page::EPS::Device::PdfDevice> device = System::MakeObject<Aspose::Page::EPS::Device::PdfDevice>(pdfStream);


    {
	    auto __finally_guard_0 = ::System::MakeScopeGuard([&psStream, &pdfStream]()
	    {
		    psStream->Close();
		    pdfStream->Close();
	    });

	    try
	    {
		    document->Merge(filesForMerge, device, options);
	    }
	    catch (...)
	    {
		    throw;
	    }
    }

PS O que é PS Formato de Arquivo

O formato PS é um dos formatos de linguagem de descrição de página (PDL). É capaz de conter informações gráficas e de texto na página. É por isso que o formato era suportado pela maioria dos programas de edição de imagens. O próprio arquivo postscript é um tipo de instrução para impressoras. Ele contém informações sobre o que e como imprimir a partir de sua página.