با استفاده از C++ فایل های XPS یا OXPS را به فرمت PDF تبدیل کنید

اسناد XPS و OXPS طرح‌بندی، ظاهر و اطلاعات چاپ را تعریف می‌کنند. این اسناد مشابه فایل های PDF هستند. با توجه به محبوبیت بالای فرمت PDF، ممکن است در موقعیت هایی قرار بگیرید که نیاز به تبدیل اسناد XPS و OXPS به فرمت PDF داشته باشید. برای این منظور، این مقاله به شما آموزش می دهد که چگونه اسناد XPS و OXPS را با استفاده از C++ به فرمت PDF تبدیل کنید.

C++ API برای تبدیل اسناد XPS و OXPS به فرمت PDF

Aspose.Page for C++ یک کتابخانه C++ برای ارائه و دستکاری فایل‌های XPS و PostScript است. این به شما امکان می دهد اسناد XPS را ایجاد، بخوانید و به روز کنید. علاوه بر این، API از تبدیل اسناد XPS و OXPS به فرمت PDF پشتیبانی می کند. می‌توانید API را از طریق NuGet نصب کنید یا آن را مستقیماً از بخش دانلودها دانلود کنید.

PM> Install-Package Aspose.Page.Cpp

تبدیل اسناد XPS/OXPS به فرمت PDF

در زیر مراحل تبدیل اسناد XPS و OXPS به فرمت PDF آمده است.

کد نمونه زیر نحوه تبدیل اسناد XPS/OXPS به فرمت PDF با استفاده از C++ را نشان می دهد.

// فایل خروجی
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(u"OutputDirectory\\XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// پاک کردن منابع تحت عبارت «استفاده»
System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
// -----------------------------------------
try {
	// منبع فایل
	System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(u"SourceDirectory\\sample.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
	// پاک کردن منابع تحت عبارت «استفاده»
	System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
	// -----------------------------------------

	try
	{
		// سند XPS را از جریان بارگیری کنید
		System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
		// یا سند XPS را مستقیماً از فایل بارگیری کنید. در این صورت نیازی به xpsStream نیست.
		// سند XpsDocument = XpsDocument جدید (inputFileName, new XpsLoadOptions());

		// شیء PdfSaveOptions را با پارامترهای لازم مقداردهی کنید.
		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
		System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfDevice>(pdfStream);

		// فایل PDF را ذخیره کنید
		document->Save(device, options);
	}
	catch (...)
	{
		__dispose_guard_0.SetCurrentException(std::current_exception());
	}
}
catch (...)
{
	__dispose_guard_1.SetCurrentException(std::current_exception());
}
تصویر فایل PDF خروجی تولید شده توسط کد نمونه

تصویر فایل PDF خروجی تولید شده توسط کد نمونه

صفحات منتخب اسناد XPS/OXPS را به فرمت PDF تبدیل کنید

هنگام تبدیل فایل های XPS و OXPS به فرمت PDF، می توانید صفحاتی را که می خواهید تبدیل کنید نیز مشخص کنید. فایل PDF خروجی فقط حاوی صفحاتی است که شما انتخاب می کنید. برای رسیدن به این هدف، لطفا مراحل زیر را دنبال کنید.

کد نمونه زیر نحوه تبدیل صفحات منتخب اسناد XPS و OXPS را به فرمت PDF با استفاده از ++C نشان می دهد.

// فایل خروجی
System::SharedPtr<System::IO::Stream> pdfStream = System::IO::File::Open(u"OutputDirectory\\XPStoPDF.pdf", System::IO::FileMode::Create, System::IO::FileAccess::Write);
// پاک کردن منابع تحت عبارت «استفاده»
System::Details::DisposeGuard<1> __dispose_guard_1({ pdfStream });
// -----------------------------------------
try {
	// منبع فایل
	System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(u"SourceDirectory\\sample.xps", System::IO::FileMode::Open, System::IO::FileAccess::Read);
	// پاک کردن منابع تحت عبارت «استفاده»
	System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream });
	// -----------------------------------------

	try
	{
		// سند XPS را از جریان بارگیری کنید
		System::SharedPtr<XpsDocument> document = System::MakeObject<XpsDocument>(xpsStream, System::MakeObject<XpsLoadOptions>());
		// یا سند XPS را مستقیماً از فایل بارگیری کنید. در این صورت نیازی به xpsStream نیست.
		// سند XpsDocument = XpsDocument جدید (inputFileName, new XpsLoadOptions());

		// شیء PdfSaveOptions را با پارامترهای لازم مقداردهی کنید.
		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
		System::SharedPtr<Aspose::Page::XPS::Presentation::Pdf::PdfDevice> device = System::MakeObject<Aspose::Page::XPS::Presentation::Pdf::PdfDevice>(pdfStream);

		// فایل PDF را ذخیره کنید
		document->Save(device, options);
	}
	catch (...)
	{
		__dispose_guard_0.SetCurrentException(std::current_exception());
	}
}
catch (...)
{
	__dispose_guard_1.SetCurrentException(std::current_exception());
}
تصویر فایل PDF خروجی تولید شده توسط کد نمونه

تصویر فایل PDF خروجی تولید شده توسط کد نمونه

مجوز رایگان دریافت کنید

با درخواست [مجوز موقت رایگان] می‌توانید API را بدون محدودیت ارزیابی امتحان کنید.

نتیجه

در این مقاله با نحوه تبدیل اسناد XPS و OXPS به فرمت PDF با استفاده از C++ آشنا شدید. علاوه بر این، نحوه تبدیل صفحات منتخب اسناد XPS/OXPS به فرمت PDF را با استفاده از Aspose.Page برای C++ API مشاهده کرده‌اید. API بسیاری از ویژگی‌های اضافی را برای کار با اسناد XPS ارائه می‌کند که می‌توانید با مراجعه به مستندات رسمی جزئیات را بررسی کنید. در صورت وجود هرگونه سوال، لطفاً در [تالار گفتمان پشتیبانی رایگان19 ما با ما تماس بگیرید.

همچنین ببینید