Unisci i documenti PS in PDF

Soluzione API C++ per combinare diversi file PostScript

 

Il formato di file PostScript può contenere più pagine, ma non ha la capacità di combinare più file in un unico documento come il formato XPS. La soluzione API Aspose.Page per C++ ti offre la funzionalità per unire diversi file PS o EPS in un unico documento PDF.

L’esempio di codice seguente mostra come unire i file PostScript utilizzando C++. Se hai bisogno di imparare come integrare questa funzionalità in una soluzione web o per unire file online, puoi provare lo strumento multipiattaforma Unione PS .

Per unire file PS ed EPS, abbiamo bisogno di:

  • Aspose.Page per l'API C++ che è un'API per la manipolazione e la conversione dei documenti ricca di funzionalità, potente e facile da usare per la piattaforma C++.

  • Puoi scaricare direttamente la sua ultima versione, basta aprire il gestore pacchetti NuGet e cercare Aspose.Page.Cpp e installarlo. È inoltre possibile utilizzare il seguente comando dalla console di Package Manager.

Package Manager Console Command


    PM> Install-Package Aspose.Page

Passaggi per unire i file PostScript con C++

  1. Inizializza l’output PDF e i flussi di input PostScript.
  2. Crea un array di file PS da unire.
  3. Utilizzare la classe PdfSaveOptions per specificare i parametri necessari. Questa classe consente di impostare parametri aggiuntivi durante l’unione.
  4. Crea un’istanza di PdfDevice dal flusso di output creato in precedenza e specifica la dimensione e il formato dell’immagine.
  5. Unisci i file. Per saperne di più su questa funzionalità vai su Aspose.Page Documentazione .

Codice C++ per unire 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;
	    }
    }

Unisci file PostScript incapsulati con C++

Per unire EPS a PDF dovrai eseguire gli stessi passaggi dell’unione da PS a PDF. Per apprendere un esempio di codice più dettagliato, vai su Aspose.Page Documentazione .

Codice C++ per unire 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 Cos'è il formato file PS

Il formato PS è uno dei formati PDL (Page Description Language). È in grado di contenere informazioni grafiche e di testo sulla pagina. Ecco perché il formato è stato supportato dalla maggior parte dei programmi per l'editing delle immagini. Il file PostScript stesso è una sorta di istruzione per le stampanti. Contiene informazioni su cosa e come stampare dalla sua pagina.