Fusionner des documents PS en PDF

Solution API C++ pour combiner plusieurs fichiers PostScript

 

Le format de fichier PostScript peut contenir plusieurs pages, mais il n’a pas la capacité de combiner plusieurs fichiers en un seul document comme le format XPS. La solution API Aspose.Page pour C++ vous offre la possibilité de fusionner plusieurs fichiers PS ou EPS en un seul document PDF.

L’exemple de code suivant montre comment fusionner des fichiers PostScript à l’aide de C++. Si vous avez besoin d’apprendre comment cette fonctionnalité peut être intégrée dans une solution Web ou pour fusionner des fichiers en ligne, vous pouvez essayer l’outil multiplateforme PS Merger .

Pour fusionner les fichiers PS et EPS, nous avons besoin de :

  • Aspose.Page pour l'API C++ qui est une API de manipulation et de conversion de documents riche en fonctionnalités, puissante et facile à utiliser pour la plate-forme C++.

  • Vous pouvez télécharger directement sa dernière version, ouvrez simplement le gestionnaire de packages NuGet, recherchez Aspose.Page.Cpp et installez-le. Vous pouvez également utiliser la commande suivante à partir de la console du gestionnaire de packages.

Package Manager Console Command


    PM> Install-Package Aspose.Page

Étapes pour fusionner des fichiers PostScript avec C++

  1. Initialisez la sortie PDF et les flux d’entrée PostScript.
  2. Créez un tableau de fichiers PS à fusionner.
  3. Utilisez la classe PdfSaveOptions pour spécifier les paramètres nécessaires. Cette classe vous permet de définir des paramètres supplémentaires lors de la fusion.
  4. Créez une instance de PdfDevice à partir du flux de sortie créé précédemment et spécifiez la taille et le format d’image.
  5. Fusionnez les fichiers. Pour en savoir plus sur cette fonctionnalité, rendez-vous sur Aspose.Page Documentation .

Code C++ pour fusionner PS en 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;
	    }
    }

Fusionner des fichiers PostScript encapsulés avec C++

Pour fusionner EPS en PDF, vous devrez suivre les mêmes étapes que pour la fusion PS en PDF. Pour découvrir un exemple de code plus détaillé, accédez à Aspose.Page Documentation .

Code C++ pour fusionner EPS en 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'est-ce que le format de fichier PS

Le format PS est l'un des formats de langage de description de page (PDL). Il est capable de contenir des informations graphiques et textuelles sur la page. C'est pourquoi le format était pris en charge par la plupart des programmes de retouche d'image. Le fichier postscript lui-même est une sorte d'instruction pour les imprimeurs. Il contient des informations sur quoi et comment imprimer à partir de sa page.