Dokumen XPS dan OXPS menentukan tata letak, tampilan, dan informasi pencetakan. Dokumen-dokumen ini mirip dengan file PDF. Karena popularitas format PDF yang tinggi, Anda mungkin menemukan diri Anda dalam situasi di mana Anda perlu mengonversi dokumen XPS dan OXPS ke format PDF. Untuk itu, artikel ini akan mengajarkan Anda cara mengonversi dokumen XPS dan OXPS ke format PDF menggunakan C++.
- C++ API untuk Mengonversi Dokumen XPS dan OXPS ke Format PDF
- Konversikan Dokumen XPS/OXPS ke Format PDF
- Ubah Halaman Terpilih dari Dokumen XPS/OXPS ke Format PDF
C++ API untuk Mengonversi Dokumen XPS dan OXPS ke Format PDF
Aspose.Page for C++ adalah pustaka C++ untuk merender dan memanipulasi file XPS dan PostScript. Ini memungkinkan Anda membuat, membaca, dan memperbarui dokumen XPS. Selain itu, API mendukung konversi dokumen XPS dan OXPS ke format PDF. Anda dapat menginstal API melalui NuGet atau mengunduhnya langsung dari bagian unduhan.
PM> Install-Package Aspose.Page.Cpp
Konversikan Dokumen XPS/OXPS ke Format PDF
Berikut langkah-langkah untuk mengubah dokumen XPS dan OXPS ke format PDF.
- Inisialisasi aliran dengan file PDF keluaran.
- Inisialisasi streaming dengan file sumber XPS/OXPS.
- Buat instance kelas XpsDocument menggunakan aliran XPS/OXPS.
- Buat instance dari kelas PdfSaveOptions.
- Tentukan opsi seperti JpegQualityLevel dan ImageCompression.
- Simpan file PDF keluaran menggunakan XpsDocument->Save(System::SharedPtr perangkat, Sistem::SharedPtr pilihan) metode.
Kode contoh berikut menunjukkan cara mengonversi dokumen XPS/OXPS ke format PDF menggunakan C++.
// Berkas keluaran
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(u"OutputDirectory\\XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Menghapus sumber daya di bawah pernyataan 'menggunakan'
System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
// ------------------------------------------------
try {
// Sumber data
System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(u"SourceDirectory\\sample.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Menghapus sumber daya di bawah pernyataan 'menggunakan'
System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
// ------------------------------------------------
try
{
// Muat dokumen XPS dari aliran
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
// atau muat dokumen XPS langsung dari file. Tidak diperlukan xpsStream.
// Dokumen XpsDocument = XpsDocument baru(inputFileName, XpsLoadOptions baru());
// Inisialisasi objek PdfSaveOptions dengan parameter yang diperlukan.
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;
}();
// Buat perangkat rendering untuk format PDF
System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfDevice>(pdfStream);
// Simpan berkas PDF
document->Save(device, options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
Ubah Halaman Terpilih dari Dokumen XPS/OXPS ke Format PDF
Saat mengonversi file XPS dan OXPS ke format PDF, Anda juga dapat menentukan halaman yang ingin Anda konversi. File PDF keluaran hanya akan berisi halaman yang Anda pilih. Untuk mencapai ini, silakan ikuti langkah-langkah yang diberikan di bawah ini.
- Inisialisasi aliran dengan file PDF keluaran.
- Inisialisasi streaming dengan file sumber XPS/OXPS.
- Buat instance kelas XpsDocument menggunakan aliran XPS/OXPS.
- Buat instance dari kelas PdfSaveOptions.
- Tentukan opsi seperti JpegQualityLevel dan ImageCompression.
- Tentukan halaman yang ingin Anda konversi menggunakan PdfSaveOptions->setPageNumbers(System::ArrayPtr nilai) metode.
- Simpan file PDF keluaran menggunakan XpsDocument->Save(System::SharedPtr perangkat, Sistem::SharedPtr pilihan) metode.
Kode contoh berikut menunjukkan cara mengonversi halaman terpilih dari dokumen XPS dan OXPS ke format PDF menggunakan C++.
// Berkas keluaran
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(u"OutputDirectory\\XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// Menghapus sumber daya di bawah pernyataan 'menggunakan'
System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
// ------------------------------------------------
try {
// Sumber data
System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(u"SourceDirectory\\sample.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
// Menghapus sumber daya di bawah pernyataan 'menggunakan'
System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
// ------------------------------------------------
try
{
// Muat dokumen XPS dari aliran
System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
// atau muat dokumen XPS langsung dari file. Tidak diperlukan xpsStream.
// Dokumen XpsDocument = XpsDocument baru(inputFileName, XpsLoadOptions baru());
// Inisialisasi objek PdfSaveOptions dengan parameter yang diperlukan.
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;
}();
// Buat perangkat rendering untuk format PDF
System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfDevice>(pdfStream);
// Simpan berkas PDF
document->Save(device, options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
Dapatkan Lisensi Gratis
Anda dapat mencoba API tanpa batasan evaluasi dengan meminta lisensi sementara gratis.
Kesimpulan
Pada artikel ini, Anda telah mempelajari cara mengonversi dokumen XPS dan OXPS ke format PDF menggunakan C++. Selain itu, Anda telah melihat cara mengonversi halaman terpilih dari dokumen XPS/OXPS ke format PDF menggunakan Aspose.Page for C++ API. API menyediakan banyak fitur tambahan untuk bekerja dengan dokumen XPS yang dapat Anda jelajahi secara mendetail dengan mengunjungi dokumentasi resmi. Jika ada pertanyaan, jangan ragu untuk menghubungi kami di forum dukungan gratis.