PS-Dokumente in PDF zusammenführen

C++-API-Lösung zum Kombinieren mehrerer PostScript-Dateien

 

Das PostScript-Dateiformat kann mehrere Seiten enthalten, aber es hat nicht die Fähigkeit, mehrere Dateien in einem einzigen Dokument wie das XPS-Format zu kombinieren. Die Aspose.Page API-Lösung für C++ bietet Ihnen die Funktionalität, mehrere PS- oder EPS-Dateien zu einem PDF-Dokument zusammenzuführen.

Das folgende Codebeispiel veranschaulicht das Zusammenführen von PostScript-Dateien mit C++. Wenn Sie erfahren möchten, wie diese Funktionalität in eine Weblösung integriert oder Dateien online zusammengeführt werden können, können Sie das plattformübergreifende Tool PS Merger ausprobieren .

Um PS- und EPS-Dateien zusammenzuführen, benötigen wir:

  • Aspose.Page für die C++-API, eine funktionsreiche, leistungsstarke und einfach zu verwendende API zur Dokumentenbearbeitung und -konvertierung für die C++-Plattform.

  • Sie können die neueste Version direkt herunterladen, öffnen Sie einfach den NuGet-Paketmanager, suchen Sie nach Aspose.Page.Cpp und installieren Sie es. Sie können auch den folgenden Befehl in der Paket-Manager-Konsole verwenden.

Package Manager Console Command


    PM> Install-Package Aspose.Page

Schritte zum Zusammenführen von PostScript-Dateien mit C++

  1. Initialisieren Sie die PDF-Ausgabe und die PostScript-Eingabeströme.
  2. Erstellen Sie ein Array von PS-Dateien zum Zusammenführen.
  3. Verwenden Sie die Klasse PdfSaveOptions , um die erforderlichen Parameter anzugeben. Mit dieser Klasse können Sie beim Zusammenführen zusätzliche Parameter festlegen.
  4. Erstellen Sie eine Instanz von PdfDevice aus dem zuvor erstellten Ausgabestream und geben Sie die Größe und das Bildformat an.
  5. Führen Sie die Dateien zusammen. Um mehr über diese Funktionalität zu erfahren, gehen Sie zu Aspose.Page Documentation .

C++-Code zum Zusammenführen von PS mit 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;
	    }
    }

Zusammenführen von Encapsulated PostScript-Dateien mit C++

Um EPS mit PDF zusammenzuführen, müssen Sie dieselben Schritte wie beim Zusammenführen von PS mit PDF ausführen. Ein detaillierteres Codebeispiel finden Sie unter Aspose.Page Documentation .

C++-Code zum Zusammenführen von EPS mit 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 Was ist PS Dateiformat

Das PS-Format ist eines der Formate der Seitenbeschreibungssprache (PDL). Es kann sowohl grafische als auch Textinformationen auf der Seite enthalten. Deshalb wurde das Format von den meisten Programmen zur Bildbearbeitung unterstützt. Die Postscript-Datei selbst ist eine Art Anleitung für Drucker. Es enthält Informationen darüber, was und wie von seiner Seite aus gedruckt werden kann.