XPS dokumentumok egyesítése PDF-be

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

 

Az XPS fájlformátum lehetővé teszi több dokumentum tárolását egyetlen fájlon belül, és több oldalt is tartalmazhat. Az Aspose.Page API Solution for C++ lehetőséget kínál több fájl egyesítésére, így XPS vagy PDF fájl keletkezik, amely tartalmazza az összes eredeti fájl együttes tartalmát.

Itt talál egy kódpéldát az API használatára XPS-fájlok egyesítésére. Ha meg szeretné vizsgálni, hogyan integrálható ez a funkció egy webes megoldásba, vagy hogyan használható online fájlegyesítésre, próbálja ki a többplatformos XPS Merger alkalmazást. eszköz.

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

  • 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

Lépések több XPS-fájl egyesítéséhez PDF-be a C++ segítségével.

  1. Állítsa be a dokumentumok könyvtárának elérési útját.
  2. Inicializálja a PDF kimenetet és az XPS fájl bemeneti adatfolyamát.
  3. Hozzon létre egy XpsDocument példányt a korábban létrehozott beviteli adatfolyamból.
  4. Inicializálja a beállítások objektumot a TextCompression, ImageCompression, JpegQualityLevel paraméterekkel a kimeneti fájlhoz a PdfSaveOptions segítségével .pdf_save_options) Osztály.
  5. A PdfDevice osztály használatával hozzon létre egy megjelenítőeszközt PDF formátumhoz.
  6. Az XPS-fájlok egyesítése az XPS-dokumentum kimenetéhez.

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

    using Aspose::Page::XPS;
    using Aspose::Page::IO;
    using Aspose::Page::Presentation::Pdf;
    // Input file
    System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(RunExamples::outDir() + u"XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
    // Clearing resources under 'using' statement
    System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
    // ------------------------------------------
    try {
	    System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(RunExamples::dataDir() + u"input xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
	    // Clearing resources under 'using' statement
	    System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
	    // ------------------------------------------

	    try
	    {
		    // Load XPS document form the stream
		    System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
		    // or load XPS document directly from file. No xpsStream is needed then.
		    // XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());

		    // Initialize options object with necessary parameters.
		    System::SharedPtr<Aspose::Page::Xps::Presentation::Pdf::PdfSaveOptions> options = [&] { auto tmp_0 = System::MakeObject<Aspose::Page::Xps::Presentation::Pdf::PdfSaveOptions>(); tmp_0->set_JpegQualityLevel(100); tmp_0->set_ImageCompression(Aspose::Page::Xps::Presentation::Pdf::PdfImageCompression::Jpeg); tmp_0->set_TextCompression(Aspose::Page::Xps::Presentation::Pdf::PdfTextCompression::Flate); tmp_0->set_PageNumbers(System::MakeArray<int32_t>({ 1, 2, 6 })); return tmp_0; }();

		    // Create rendering device for PDF format
		    System::SharedPtr<Aspose::Page::Xps::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::Xps::Presentation::Pdf::PdfDevice>(pdfStream);

		    // Create an array of XPS files that will be merged with the first one
		    System::ArrayPtr<System::String> filesForMerge = System::MakeArray<System::String>({dataDir() + u"input2.xps", dataDir() + u"input3.xps"});

		    document->Merge(filesForMerge, device, options);
	    }
	    catch (...)
	    {
		    __dispose_guard_0.SetCurrentException(std::current_exception());
	    }
    }
    catch (...)
    {
	    __dispose_guard_1.SetCurrentException(std::current_exception());
    }

Több XPS-fájl egyetlen fájlba egyesítése a C++ segítségével.

  1. Inicializálja az XPS kimeneti és bemeneti adatfolyamot.
  2. Hozzon létre egy XPS-fájlok tömbjét, amelyet az elsővel egyesít.
  3. Hozzon létre egy XpsDocument példányt a korábban létrehozott beviteli adatfolyamból.
  4. Az XPS-fájlok egyesítése az XPS-dokumentum kimenetéhez.

C++ kód az XPS és az XPSF egyesítéséhez

    // Output stream
    System::SharedPtr<System::IO::Stream> outStream = System::IO::File::Open(RunExamples::outDir() + u"mergedXPSfiles.xps", System::IO::FileMode::Create, System::IO::FileAccess::Write);
    // Clearing resources under 'using' statement
    System::Details::DisposeGuard<1> __dispose_guard_1({ outStream });
    // ------------------------------------------
    try {
	    System::SharedPtr<System::IO::Stream> inStream = System::IO::File::Open(RunExamples::dataDir() + u"input.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
	    // Clearing resources under 'using' statement
	    System::Details::DisposeGuard<1> __dispose_guard_0({ inStream });
	    // ------------------------------------------

	    try
	    {
		    // Load XPS document form the stream
		    System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
		    // or load XPS document directly from file. No xpsStream is needed then.
		    // XpsDocument document = new XpsDocument(inputFileName, new XpsLoadOptions());

		    // Create an array of XPS files that will be merged with the first one
		    System::ArrayPtr<System::String> filesForMerge = System::MakeArray<System::String>({dataDir() + u"input2.xps", dataDir() + u"input3.xps"});

		    document->Merge(filesForMerge, outStream);
	    }
	    catch (...)
	    {
		    __dispose_guard_0.SetCurrentException(std::current_exception());
	    }
    }
    catch (...)
    {
	    __dispose_guard_1.SetCurrentException(std::current_exception());
    }

XPS Mi a XPS fájlformátum

Az XPS formátum hasonló a PDF formátumhoz. Mindkettő oldalleíró nyelv (PDL) formátum. Az EPS HTML alapú, és nem PostScript nyelven. Az .eps fájl képes tartalmazni a dokumentum szerkezetének jelölését, valamint a dokumentum megjelenésére vonatkozó információkat. A dokumentum nyomtatására és renderelésére vonatkozó utasításokat is tartalmazzák. A formátum jellemzője, hogy rögzíti a dokumentum leírását, ami azt jelenti, hogy ugyanúgy fog kinézni, függetlenül attól, hogy ki és milyen operációs rendszerről nyitja meg.