قم بتحويل ملفات XPS أو OXPS إلى تنسيق PDF باستخدام C ++

تحدد المستندات XPS و OXPS معلومات التخطيط والمظهر والطباعة. تشبه هذه المستندات ملفات PDF. نظرًا لارتفاع شعبية تنسيق PDF ، فقد تجد نفسك في مواقف تحتاج فيها إلى تحويل مستندات XPS و OXPS إلى تنسيق PDF. تحقيقًا لهذه الغاية ، ستعلمك هذه المقالة كيفية تحويل مستندات XPS و OXPS إلى تنسيق PDF باستخدام C ++.

واجهة برمجة تطبيقات C ++ لتحويل مستندات 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 document = new 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 document = new 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 الناتج الذي تم إنشاؤه بواسطة نموذج التعليمات البرمجية

احصل على رخصة مجانية

يمكنك تجربة واجهة برمجة التطبيقات بدون قيود التقييم من خلال طلب ترخيص مجاني مؤقت.

استنتاج

في هذه المقالة ، تعلمت كيفية تحويل مستندات XPS و OXPS إلى تنسيق PDF باستخدام C ++. بالإضافة إلى ذلك ، لقد رأيت كيفية تحويل الصفحات المحددة من مستندات XPS / OXPS إلى تنسيق PDF باستخدام Aspose.Page لواجهة برمجة تطبيقات C ++. توفر واجهة برمجة التطبيقات العديد من الميزات الإضافية للعمل مع مستندات XPS التي يمكنك استكشافها بالتفصيل من خلال زيارة الوثائق الرسمية. في حالة وجود أي أسئلة ، لا تتردد في الاتصال بنا على منتدى الدعم المجاني.

أنظر أيضا