اسناد XPS و OXPS طرحبندی، ظاهر و اطلاعات چاپ را تعریف میکنند. این اسناد مشابه فایل های PDF هستند. با توجه به محبوبیت بالای فرمت PDF، ممکن است در موقعیت هایی قرار بگیرید که نیاز به تبدیل اسناد XPS و OXPS به فرمت PDF داشته باشید. برای این منظور، این مقاله به شما آموزش می دهد که چگونه اسناد XPS و OXPS را با استفاده از C++ به فرمت PDF تبدیل کنید.
- C++ API برای تبدیل اسناد XPS و OXPS به فرمت PDF
- تبدیل اسناد XPS/OXPS به فرمت PDF
- صفحات منتخب اسناد XPS/OXPS را به فرمت 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 آمده است.
- یک جریان را با فایل PDF خروجی راه اندازی کنید.
- یک جریان را با فایل منبع XPS/OXPS راه اندازی کنید.
- با استفاده از جریان XPS/OXPS یک نمونه از کلاس XpsDocument ایجاد کنید.
- یک نمونه از کلاس PdfSaveOptions ایجاد کنید.
- گزینه هایی مانند JpegQualityLevel و ImageCompression را مشخص کنید.
- فایل PDF خروجی را با استفاده از XpsDocument->Save(System::SharedPtr ذخیره کنید دستگاه، سیستم::SharedPtr گزینه ها) روش.
کد نمونه زیر نحوه تبدیل اسناد 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());
}
صفحات منتخب اسناد XPS/OXPS را به فرمت PDF تبدیل کنید
هنگام تبدیل فایل های XPS و OXPS به فرمت PDF، می توانید صفحاتی را که می خواهید تبدیل کنید نیز مشخص کنید. فایل PDF خروجی فقط حاوی صفحاتی است که شما انتخاب می کنید. برای رسیدن به این هدف، لطفا مراحل زیر را دنبال کنید.
- یک جریان را با فایل PDF خروجی راه اندازی کنید.
- یک جریان را با فایل منبع XPS/OXPS راه اندازی کنید.
- یک نمونه از کلاس XpsDocument با استفاده از جریان XPS/OXPS ایجاد کنید.
- یک نمونه از کلاس PdfSaveOptions ایجاد کنید.
- گزینه هایی مانند JpegQualityLevel و ImageCompression را مشخص کنید.
- صفحاتی را که می خواهید با استفاده از PdfSaveOptions->setPageNumbers(System::ArrayPtr تبدیل کنید، مشخص کنید. مقدار) روش.
- فایل PDF خروجی را با استفاده از XpsDocument->Save(System::SharedPtr ذخیره کنید دستگاه، سیستم::SharedPtr گزینه ها) روش.
کد نمونه زیر نحوه تبدیل صفحات منتخب اسناد 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());
}
مجوز رایگان دریافت کنید
با درخواست [مجوز موقت رایگان] میتوانید API را بدون محدودیت ارزیابی امتحان کنید.
نتیجه
در این مقاله با نحوه تبدیل اسناد XPS و OXPS به فرمت PDF با استفاده از C++ آشنا شدید. علاوه بر این، نحوه تبدیل صفحات منتخب اسناد XPS/OXPS به فرمت PDF را با استفاده از Aspose.Page برای C++ API مشاهده کردهاید. API بسیاری از ویژگیهای اضافی را برای کار با اسناد XPS ارائه میکند که میتوانید با مراجعه به مستندات رسمی جزئیات را بررسی کنید. در صورت وجود هرگونه سوال، لطفاً در [تالار گفتمان پشتیبانی رایگان19 ما با ما تماس بگیرید.