Combinar documentos PS a PDF

Solución API C++ para combinar varios archivos PostScript

 

El formato de archivo PostScript puede contener varias páginas, pero no tiene la capacidad de combinar varios archivos en un solo documento como el formato XPS. La solución Aspose.Page API para C++ le brinda la funcionalidad de fusionar varios archivos PS o EPS en un documento PDF.

El siguiente ejemplo de código muestra cómo fusionar archivos PostScript usando C++. Si necesita aprender cómo se puede integrar esta funcionalidad en una solución web o combinar archivos en línea, puede probar la herramienta multiplataforma PS Merger .

Para fusionar archivos PS y EPS, necesitamos:

  • Aspose.Page para la API de C++, que es una API de manipulación y conversión de documentos rica en funciones, potente y fácil de usar para la plataforma C++.

  • Puede descargar su última versión directamente, simplemente abra el administrador de paquetes NuGet y busque Aspose.Page.Cpp e instálelo. También puede usar el siguiente comando desde la Consola del administrador de paquetes.

Package Manager Console Command


    PM> Install-Package Aspose.Page

Pasos para fusionar archivos PostScript con C++

  1. Inicialice los flujos de salida de PDF y de entrada de PostScript.
  2. Cree una matriz de archivos PS para fusionar.
  3. Utilice la clase PdfSaveOptions para especificar los parámetros necesarios. Esta clase le permite establecer parámetros adicionales durante la fusión.
  4. Cree una instancia de PdfDevice a partir del flujo de salida creado anteriormente y especifique el tamaño y el formato de la imagen.
  5. Combinar los archivos. Para obtener más información sobre esta funcionalidad, vaya a Aspose.Page Documentación .

Código C++ para fusionar PS a 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;
	    }
    }

Combinar archivos PostScript encapsulado con C++

Para fusionar EPS a PDF, deberá seguir los mismos pasos que para la fusión de PS a PDF. Para conocer un ejemplo de código más detallado, vaya a Aspose.Page Documentación .

Código C++ para fusionar EPS a 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 Qué es PS Formato de archivo

El formato PS es uno de los formatos de lenguaje de descripción de página (PDL). Es capaz de contener información gráfica y de texto en la página. Es por eso que el formato fue soportado por la mayoría de los programas de edición de imágenes. El archivo postscript en sí mismo es una especie de instrucción para las impresoras. Contiene información sobre qué y cómo imprimir desde su página.