XPS ve OXPS belgeleri düzeni, görünümü ve yazdırma bilgilerini tanımlar. Bu belgeler PDF dosyalarına benzer. PDF formatının yüksek popülaritesi nedeniyle, kendinizi XPS ve OXPS belgelerini PDF formatına dönüştürmeniz gereken durumlarda bulabilirsiniz. Bu amaçla, bu makale size XPS ve OXPS belgelerini C++ kullanarak PDF formatına nasıl dönüştüreceğinizi öğretecektir.
- XPS ve OXPS Belgelerini PDF Biçimine Dönüştürmek için C++ API
- XPS/OXPS Belgelerini PDF Formatına Dönüştürün
- XPS/OXPS Belgelerinin Seçilen Sayfalarını PDF Formatına Dönüştürün
XPS ve OXPS Belgelerini PDF Biçimine Dönüştürmek için C++ API
Aspose.Page for C++, XPS ve PostScript dosyalarını işlemek ve işlemek için kullanılan bir C++ kitaplığıdır. XPS belgeleri oluşturmanıza, okumanıza ve güncellemenize olanak tanır. Ayrıca API, XPS ve OXPS belgelerinin PDF formatına dönüştürülmesini destekler. API’yi NuGet aracılığıyla yükleyebilir veya doğrudan indirilenler bölümünden indirebilirsiniz.
PM> Install-Package Aspose.Page.Cpp
XPS/OXPS Belgelerini PDF Formatına Dönüştürün
Aşağıda, XPS ve OXPS belgelerini PDF biçimine dönüştürme adımları yer almaktadır.
- Çıktı PDF dosyasıyla bir akış başlatın.
- Kaynak XPS/OXPS dosyasıyla bir akış başlatın.
- XPS/OXPS akışını kullanarak XpsDocument sınıfının bir örneğini oluşturun.
- PdfSaveOptions sınıfının bir örneğini oluşturun.
- JpegQualityLevel ve ImageCompression gibi seçenekleri belirleyin.
- Çıkış PDF dosyasını XpsDocument->Save(System::SharedPtr) kullanarak kaydedin. cihaz, Sistem::SharedPtr seçenekler) yöntemi.
Aşağıdaki örnek kod, XPS/OXPS belgelerinin C++ kullanılarak PDF biçimine nasıl dönüştürüleceğini gösterir.
// Çıktı dosyası
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(u"OutputDirectory\\XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Kaynakları 'kullanma' ifadesi altında temizleme
System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
// ------------------------------------------
try {
// Kaynak dosyası
System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(u"SourceDirectory\\sample.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Kaynakları 'kullanma' ifadesi altında temizleme
System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
// ------------------------------------------
try
{
// Akıştan XPS belgesi yükleyin
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
// veya XPS belgesini doğrudan dosyadan yükleyin. O zaman xpsStream gerekmez.
// XpsDocument belgesi = new XpsDocument(inputFileName, new XpsLoadOptions());
// Gerekli parametrelerle PdfSaveOptions nesnesini başlatın.
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);
return tmp_0;
}();
// PDF formatı için işleme cihazı oluşturun
System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfDevice>(pdfStream);
// PDF dosyasını kaydet
document->Save(device, options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
XPS/OXPS Belgelerinin Seçilen Sayfalarını PDF Formatına Dönüştürün
XPS ve OXPS dosyalarını PDF formatına dönüştürürken dönüştürmek istediğiniz sayfaları da belirtebilirsiniz. Çıktı PDF dosyası yalnızca seçtiğiniz sayfaları içerecektir. Bunu başarmak için lütfen aşağıda verilen adımları izleyin.
- Çıktı PDF dosyasıyla bir akış başlatın.
- Kaynak XPS/OXPS dosyasıyla bir akış başlatın.
- XPS/OXPS akışını kullanarak XpsDocument sınıfının bir örneğini oluşturun.
- PdfSaveOptions sınıfının bir örneğini oluşturun.
- JpegQualityLevel ve ImageCompression gibi seçenekleri belirleyin.
- PdfSaveOptions->setPageNumbers(System::ArrayPtr) kullanarak dönüştürmek istediğiniz sayfaları belirtin. değer) yöntemi.
- Çıkış PDF dosyasını XpsDocument->Save(System::SharedPtr) kullanarak kaydedin. cihaz, Sistem::SharedPtr seçenekler) yöntemi.
Aşağıdaki örnek kod, XPS ve OXPS belgelerinin seçili sayfalarının C++ kullanılarak PDF biçimine nasıl dönüştürüleceğini gösterir.
// Çıktı dosyası
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(u"OutputDirectory\\XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Kaynakları 'kullanma' ifadesi altında temizleme
System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
// ------------------------------------------
try {
// Kaynak dosyası
System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(u"SourceDirectory\\sample.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Kaynakları 'kullanma' ifadesi altında temizleme
System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
// ------------------------------------------
try
{
// Akıştan XPS belgesi yükleyin
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
// veya XPS belgesini doğrudan dosyadan yükleyin. O zaman xpsStream gerekmez.
// XpsDocument belgesi = new XpsDocument(inputFileName, new XpsLoadOptions());
// Gerekli parametrelerle PdfSaveOptions nesnesini başlatın.
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, 3 }));
return tmp_0;
}();
// PDF formatı için işleme cihazı oluşturun
System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfDevice>(pdfStream);
// PDF dosyasını kaydet
document->Save(device, options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
Ücretsiz Lisans Alın
Ücretsiz bir geçici lisans talep ederek API’yi değerlendirme sınırlamaları olmadan deneyebilirsiniz.
Çözüm
Bu makalede, C++ kullanarak XPS ve OXPS belgelerini PDF formatına nasıl dönüştüreceğinizi öğrendiniz. Ek olarak, XPS/OXPS belgelerinin seçili sayfalarını Aspose.Page for C++ API kullanarak PDF formatına nasıl dönüştüreceğinizi gördünüz. API, XPS belgeleriyle çalışmak için resmi belgeleri ziyaret ederek ayrıntılı olarak keşfedebileceğiniz birçok ek özellik sağlar. Herhangi bir sorunuz olması durumunda lütfen ücretsiz destek forumumuzda bize ulaşmaktan çekinmeyin.