XPS belgelerini PDF’de birleştirin

Birkaç XPS dosyasını birleştirmek için C++ API çözümü

 

XPS dosya biçimi, birden çok belgenin tek bir dosyada depolanmasına olanak tanır ve ayrıca birden çok sayfa içerebilir. C++ için Aspose.Page API Çözümü, birden çok dosyayı tek bir dosyada birleştirerek tüm orijinal dosyaların birleştirilmiş içeriğini içeren bir XPS veya PDF dosyası oluşturma olanağı sunar.

Burada, XPS dosyalarını birleştirmek için API’nin nasıl kullanılacağına dair bir kod örneği bulacaksınız. Bu işlevin bir web çözümüne nasıl entegre edilebileceğini veya çevrimiçi dosya birleştirme için nasıl kullanılabileceğini keşfetmek için platformlar arası XPS Merger aracını deneyebilirsiniz. alet.

PS ve EPS dosyalarını birleştirmek için şunlara ihtiyacınız vardır:

  • C++ platformu için zengin özelliklere sahip, güçlü ve kullanımı kolay bir belge işleme ve dönüştürme API'si olan Aspose.Page for C++ API.

  • En son sürümünü doğrudan indirebilir, NuGet paket yöneticisini açıp Aspose.Page.Cpp'yi aratıp kurmanız yeterlidir. Paket Yöneticisi Konsolundan aşağıdaki komutu da kullanabilirsiniz.

Package Manager Console Command


    PM> Install-Package Aspose.Page

Birkaç XPS dosyasını C++ ile PDF'de birleştirme adımları.

  1. Belgeler dizinine giden yolu ayarlayın.
  2. PDF çıktısını ve XPS dosya giriş akışlarını başlatın.
  3. Daha önce oluşturulan giriş akışından bir XpsDocument örneği oluşturun.
  4. PdfSaveOptions Sınıfı yoluyla çıktı dosyası için TextCompression, ImageCompression, JpegQualityLevel parametreleriyle seçenekler nesnesini başlatın.
  5. PdfDevice Sınıfını kullanarak, PDF formatı için bir işleme aygıtı oluşturun.
  6. XPS belgesini çıkarmak için XPS dosyalarını birleştirin.

XPS'yi PDF'ye birleştirmek için C++ Kodu

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

Birkaç XPS dosyasını C++ ile tek bir dosyada birleştirme adımları.

  1. XPS çıkışını ve giriş akışlarını başlatın.
  2. İlki ile birleştirilecek bir dizi XPS dosyası oluşturun.
  3. Daha önce oluşturulan giriş akışından bir XpsDocument örneği oluşturun.
  4. XPS belgesini çıkarmak için XPS dosyalarını birleştirin.

XPS'yi XPS ile birleştirmek için C++ Kodu

    // 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 XPS Dosya Biçimi nedir

XPS formatı, PDF formatına benzer. Her ikisi de sayfa açıklama dili (PDL) biçimleridir. EPS, PostScript diline değil, HTML'ye dayalıdır. .eps dosyası, belgenin nasıl görüneceğine ilişkin bilgilerle birlikte belgenin yapısının bir işaretini içerebilir. Belgenin nasıl yazdırılacağına ve oluşturulacağına ilişkin ek talimatlar da vardır. Formatın özelliği, belgenin açıklamasını düzeltmesidir, bu da onu kimden ve hangi işletim sisteminden açarsa açsın aynı görüneceği anlamına gelir.