Egyesítse a PS-dokumentumokat PDF-be

C++ API megoldás több PostScript fájl kombinálásához

 

A PostScript fájlformátum több oldalt is tartalmazhat, de nem képes több fájlt egyetlen dokumentumba egyesíteni, mint az XPS formátum. Az Aspose.Page API C++-hoz olyan funkciót biztosít, amellyel több PS- vagy EPS-fájlt egyesíthet egyetlen PDF-dokumentumban.

A következő kódpélda bemutatja, hogyan egyesíthet PostScript fájlokat C++ használatával. Ha meg kell tanulnia, hogyan integrálható ez a funkció egy webes megoldásba, vagy hogyan egyesíthet fájlokat online, próbálja ki a többplatformos PS Merger eszközt. .

A PS és EPS fájlok egyesítéséhez a következőkre van szükségünk:

  • Az Aspose.Page for C++ API, amely funkciókban gazdag, hatékony és könnyen használható dokumentumkezelési és -konverziós API C++ platformhoz.

  • A legújabb verziót közvetlenül letöltheti, csak nyissa meg a NuGet csomagkezelőt, keresse meg az Aspose.Page.Cpp fájlt, és telepítse. A következő parancsot is használhatja a Package Manager konzolból.

Package Manager Console Command


    PM> Install-Package Aspose.Page

A PostScript fájlok egyesítésének lépései C++-szal

  1. Inicializálja a PDF kimenetet és a PostScript bemeneti adatfolyamot.
  2. Hozzon létre egy PS-fájlok tömbjét az egyesítéshez.
  3. A szükséges paraméterek megadásához használja a PdfSaveOptions osztályt. Ez az osztály lehetővé teszi további paraméterek beállítását egyesítés közben.
  4. Hozzon létre egy PdfDevice példányt a korábban létrehozott kimeneti adatfolyamból, és adja meg a méretet és a képformátumot.
  5. Egyesítse a fájlokat. Ha többet szeretne megtudni erről a funkcióról, keresse fel az Aspose.Page Documentation oldalt.

C++ kód a PS és a PDF egyesítéséhez

    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;
	    }
    }

Egyesítse az Encapsulated PostScript fájlokat C++-szal

Az EPS és a PDF egyesítéséhez ugyanazokat a lépéseket kell végrehajtania, mint a PS PDF egyesítésénél. Részletesebb kódpéldát az Aspose.Page Documentation oldalon talál.

C++ kód az EPS és a PDF egyesítéséhez

    // 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 Mi a PS fájlformátum

A PS formátum az oldalleíró nyelv (PDL) egyik formátuma. Képes grafikus és szöveges információkat is tartalmazni az oldalon. Ezért a formátumot a legtöbb képszerkesztő program támogatta. Maga a postscript fájl egyfajta utasítás a nyomtatóknak. Információkat tartalmaz arról, hogy mit és hogyan kell nyomtatni az oldaláról.