تبدیل PPT و PPTX به PDF در C++ [ویژگی‌های پیشرفته گنجانده شده]

نمای کلی

تبدیل ارائه‌های PowerPoint (PPT، PPTX، ODP و غیره) به فرمت PDF در C++ مزایای متعددی دارد، از جمله سازگاری با دستگاه‌های مختلف و حفظ چیدمان و قالب‌بندی ارائه شما. این راهنما نشان می‌دهد چگونه ارائه‌ها را به اسناد PDF تبدیل کنید، از گزینه‌های مختلف برای کنترل کیفیت تصویر استفاده کنید، اسلایدهای پنهان را شامل کنید، فایل‌های PDF را با رمز عبور محافظت کنید، جایگزینی فونت‌ها را تشخیص دهید، اسلایدهای خاصی را برای تبدیل انتخاب کنید و استانداردهای انطباق را بر اسناد خروجی اعمال کنید.

تبدیل PowerPoint به PDF

با استفاده از Aspose.Slides، می‌توانید ارائه‌ها را در فرمت‌های زیر به PDF تبدیل کنید:

  • PPT
  • PPTX
  • ODP

برای تبدیل یک ارائه به PDF، نام فایل را به‌عنوان ورودی به کلاس Presentation بدهید و سپس ارائه را با متد Save به PDF ذخیره کنید. کلاس Presentation متدی به‌نام Save در اختیار می‌گذارد که معمولاً برای تبدیل ارائه به PDF استفاده می‌شود.

Aspose.Slides به شما امکان می‌دهد:

  • کل ارائه‌ها را به PDF تبدیل کنید
  • اسلایدهای خاصی از یک ارائه را به PDF تبدیل کنید

Aspose.Slides ارائه‌ها را به PDF صادر می‌کند و تضمین می‌کند که PDFهای حاصل به‌دقت با ارائه‌های اصلی مطابقت داشته باشند. عناصر و ویژگی‌ها در تبدیل به‌درستی رندر می‌شوند، از جمله:

  • تصاویر
  • جعبه‌های متن و شکل‌ها
  • قالب‌بندی متن
  • قالب‌بندی پاراگراف
  • پیوندها
  • سرصفحه و پاصفحه
  • بولت‌ها
  • جداول

تبدیل PowerPoint به PDF

فرآیند استاندارد تبدیل PowerPoint به PDF از گزینه‌های پیش‌فرض استفاده می‌کند. در این حالت، Aspose.Slides سعی می‌کند ارائه ارائه‌شده را با تنظیمات بهینه و حداکثر کیفیت به PDF تبدیل کند.

این کد C++ نشان می‌دهد چگونه یک ارائه (PPT، PPTX، ODP و غیره) را به PDF تبدیل کنید:

// این شیء از کلاس Presentation را که نمایانگر یک فایل PowerPoint یا OpenDocument است، ایجاد می‌کند.
auto presentation = MakeObject<Presentation>(u"PowerPoint.ppt");

// ارائه را به‌عنوان PDF ذخیره می‌کند.
presentation->Save(u"PPT-to-PDF.pdf", SaveFormat::Pdf);

presentation->Dispose();

تبدیل PowerPoint به PDF با گزینه‌ها

Aspose.Slides گزینه‌های سفارشی—خصوصیات تحت کلاس PdfOptions—را فراهم می‌کند که به شما اجازه می‌دهد PDF حاصل را سفارشی کنید، PDF را با رمز عبور قفل کنید یا نحوه پیشرفت فرآیند تبدیل را تعیین کنید.

تبدیل PowerPoint به PDF با گزینه‌های سفارشی

با استفاده از گزینه‌های تبدیل سفارشی، می‌توانید تنظیم کیفیت دلخواه برای تصاویر رستر، نحوه پردازش متافایل‌ها، سطح فشرده‌سازی متن، DPI برای تصاویر و موارد دیگر را تعریف کنید.

مثال کد زیر نشان می‌دهد چگونه یک ارائه PowerPoint را به PDF با چندین گزینه سفارشی تبدیل کنید.

// یک شیء از کلاس PdfOptions ایجاد می‌کند.
auto pdfOptions = MakeObject<PdfOptions>();

// کیفیت تصاویر JPG را تنظیم می‌کند.
pdfOptions->set_JpegQuality(90);

// DPI تصاویر را تنظیم می‌کند.
pdfOptions->set_SufficientResolution(300);

// رفتار متافایل‌ها را تنظیم می‌کند.
pdfOptions->set_SaveMetafilesAsPng(true);

// سطح فشرده‌سازی متن برای محتوای متنی را تنظیم می‌کند.
pdfOptions->set_TextCompression(PdfTextCompression::Flate);

// حالت انطباق PDF را تعریف می‌کند.
pdfOptions->set_Compliance(PdfCompliance::Pdf15);

// یک شیء از کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است، ایجاد می‌کند.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// ارائه را به‌عنوان یک سند PDF ذخیره می‌کند.
presentation->Save(u"PowerPoint-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

تبدیل PowerPoint به PDF با اسلایدهای مخفی

اگر ارائه شامل اسلایدهای مخفی باشد، می‌توانید از متد set_ShowHiddenSlides از کلاس PdfOptions استفاده کنید تا اسلایدهای مخفی را به‌عنوان صفحات در PDF نتیجه گنجانید.

این کد C++ نشان می‌دهد چگونه یک ارائه PowerPoint را به PDF با اسلایدهای مخفی گنجانده‌شده تبدیل کنید:

// یک شیء از کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است، ایجاد می‌کند.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// یک شیء از کلاس PdfOptions ایجاد می‌کند.
auto pdfOptions = MakeObject<PdfOptions>();

// اسلایدهای مخفی را اضافه می‌کند.
pdfOptions->set_ShowHiddenSlides(true);

// ارائه را به‌عنوان PDF ذخیره می‌کند.
presentation->Save(u"PowerPoint-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

تبدیل PowerPoint به PDF با حفاظت با رمز عبور

این کد C++ نشان می‌دهد چگونه یک ارائه PowerPoint را به PDF محافظت‌شده با رمز عبور تبدیل کنید با استفاده از پارامترهای حفاظتی کلاس PdfOptions:

// یک شیء از کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است، ایجاد می‌کند.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// یک شیء از کلاس PdfOptions ایجاد می‌کند.
auto pdfOptions = MakeObject<PdfOptions>();

// یک گذرواژه PDF و مجوزهای دسترسی تنظیم می‌کند.
pdfOptions->set_Password(u"password");
pdfOptions->set_AccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);

// ارائه را به‌عنوان PDF ذخیره می‌کند.
presentation->Save(u"PPTX-to-PDF.pdf", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

تشخیص جایگزینی فونت‌ها

Aspose.Slides متد set_WarningCallback را تحت کلاس PdfOptions فراهم می‌کند تا بتوانید هنگام تبدیل ارائه به PDF، جایگزینی فونت‌ها را تشخیص دهید.

این کد C++ نشان می‌دهد چگونه جایگزینی فونت‌ها را تشخیص دهید:

// پیاده‌سازی callback هشدار.
class FontSubstitutionHandler : public IWarningCallback
{
public:
    ReturnAction Warning(SharedPtr<IWarningInfo> warning) override;
};

ReturnAction FontSubstitutionHandler::Warning(SharedPtr<IWarningInfo> warning)
{
    if (warning->get_WarningType() == WarningType::DataLoss && 
        warning->get_Description().StartsWith(u"Font will be substituted"))
    {
        Console::WriteLine(u"Font substitution warning: {0}", warning->get_Description());
    }

    return ReturnAction::Continue;
}

int main()
{
    // یک شیء از کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است، ایجاد می‌کند.
    auto presentation = MakeObject<Presentation>(u"sample.pptx");

    // تنظیم callback هشدار در گزینه‌های PDF.
    auto pdfOptions = MakeObject<PdfOptions>();
    pdfOptions->set_WarningCallback(MakeObject<FontSubstitutionHandler>());

    // ارائه را به‌عنوان PDF ذخیره می‌کند.
    presentation->Save(u"output.pdf", SaveFormat::Pdf, pdfOptions);
    
    presentation->Dispose();

    return 0;
}

تبدیل اسلایدهای انتخابی از PowerPoint به PDF

این کد C++ نشان می‌دهد چگونه تنها اسلایدهای خاصی از یک ارائه PowerPoint را به PDF تبدیل کنید:

// یک شیء از کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است، ایجاد می‌کند.
auto presentation = MakeObject<Presentation>(u"PowerPoint.pptx");

// آرایه‌ای از شماره اسلایدها تنظیم می‌کند.
auto slides = MakeArray<int32_t>({ 1, 3 });

// ارائه را به‌عنوان PDF ذخیره می‌کند.
presentation->Save(u"PPTX-to-PDF.pdf", slides, SaveFormat::Pdf);

presentation->Dispose();

تبدیل PowerPoint به PDF با اندازه اسلاید سفارشی

این کد C++ نشان می‌دهد چگونه یک ارائه PowerPoint را به PDF با اندازه اسلاید مشخص تبدیل کنید:

auto slideWidth = 612;
auto slideHeight = 792;

// Instantiate the Presentation class that represents a PowerPoint or OpenDocument file.
auto presentation = MakeObject<Presentation>(u"SelectedSlides.pptx");

// Create a new presentation with an adjusted slide size.
auto resizedPresentation = MakeObject<Presentation>();

// Set the custom slide size.
resizedPresentation->get_SlideSize()->SetSize(slideWidth, slideHeight, SlideSizeScaleType::EnsureFit);

// Clone the first slide from the original presentation.
auto slide = presentation->get_Slide(0);
resizedPresentation->get_Slides()->InsertClone(0, slide);

// Save the resized presentation to a PDF with notes.
resizedPresentation->Save(u"PDF_with_notes.pdf", SaveFormat::Pdf);

resizedPresentation->Dispose();
presentation->Dispose();

تبدیل PowerPoint به PDF در نمای اسلاید یادداشت‌ها

این کد C++ نشان می‌دهد چگونه یک ارائه PowerPoint را به PDF که شامل یادداشت‌ها است، تبدیل کنید:

// یک شیء از کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است، ایجاد می‌کند.
auto presentation = MakeObject<Presentation>(u"SelectedSlides.pptx");

// گزینه‌های PDF را با چیدمان یادداشت‌ها تنظیم می‌کند.
auto notesOptions = MakeObject<NotesCommentsLayoutingOptions>();
notesOptions->set_NotesPosition(NotesPositions::BottomFull);
auto pdfOptions = MakeObject<PdfOptions>();
pdfOptions->set_SlidesLayoutOptions(notesOptions);

// ارائه را به یک PDF با یادداشت‌ها ذخیره می‌کند.
presentation->Save(u"PDF_with_notes.tiff", SaveFormat::Pdf, pdfOptions);

presentation->Dispose();

استانداردهای دسترس‌پذیری و انطباق برای PDF

Aspose.Slides به شما امکان می‌دهد از روش تبدیل پیروی کنید که با راهنمای دسترس‌پذیری محتوای وب (WCAG) مطابقت داشته باشد. می‌توانید یک سند PowerPoint را به PDF صادر کنید با هر یک از این استانداردهای انطباق: PDF/A1a، PDF/A1b و PDF/UA.

این کد C++ یک فرآیند تبدیل PowerPoint به PDF را نشان می‌دهد که بر اساس استانداردهای انطباق مختلف، چندین PDF تولید می‌کند:

auto presentation = MakeObject<Presentation>(u"pres.pptx");

auto pdfOptionsA1a = MakeObject<PdfOptions>();

pdfOptionsA1a->set_Compliance(PdfCompliance::PdfA1a);
presentation->Save(u"pres-a1a-compliance.pdf", SaveFormat::Pdf, pdfOptionsA1a);

auto pdfOptionsA1b = MakeObject<PdfOptions>();
pdfOptionsA1b->set_Compliance(PdfCompliance::PdfA1b);
presentation->Save(u"pres-a1b-compliance.pdf", SaveFormat::Pdf, pdfOptionsA1b);

auto pdfOptionsUa = MakeObject<PdfOptions>();
pdfOptionsUa->set_Compliance(PdfCompliance::PdfUa);

presentation->Save(u"pres-ua-compliance.pdf", SaveFormat::Pdf, pdfOptionsUa);

presentation->Dispose();

تذکر: هنگام خروجی به PDF/UA، Aspose.Slides گرافیک‌های پیچیده مانند SmartArt، نمودارها و فرمول‌ها را به‌عنوان یک شکل واحد درنظر می‌گیرد. عناصر مسیر جداگانه به‌عنوان محتوا حفظ نمی‌شوند و ممکن است به‌عنوان عیوب علامت‌گذاری شوند؛ متن جایگزین فقط برای کل شکل ارائه می‌شود.

پرسش‌های متداول

آیا می‌توانم چندین فایل PowerPoint را به صورت دسته‌ای به PDF تبدیل کنم؟

بله، Aspose.Slides از تبدیل دسته‌ای چندین فایل PPT یا PPTX به PDF پشتیبانی می‌کند. می‌توانید به‌صورت برنامه‌نویسی بر روی فایل‌های خود تکرار کنید و فرآیند تبدیل را اعمال کنید.

آیا می‌توانم PDF تبدیل‌شده را با رمز عبور محافظت کنم؟

به‌طور قطع. از کلاس PdfOptions برای تنظیم رمز عبور و تعریف مجوزهای دسترسی در طول فرآیند تبدیل استفاده کنید.

چگونه اسلایدهای مخفی را در PDF گنجانده کنم؟

از متد set_ShowHiddenSlides در کلاس PdfOptions برای گنجاندن اسلایدهای مخفی در PDF حاصل استفاده کنید.

آیا Aspose.Slides می‌تواند کیفیت بالای تصویر را در PDF حفظ کند؟

بله، می‌توانید با استفاده از متدهایی مانند set_JpegQuality و set_SufficientResolution در کلاس PdfOptions کیفیت تصویر را در PDF تضمین کنید.

آیا Aspose.Slides استانداردهای انطباق PDF/A را پشتیبانی می‌کند؟

بله، Aspose.Slides به شما امکان می‌دهد PDFهایی صادر کنید که با استانداردهای مختلف از جمله PDF/A1a، PDF/A1b و PDF/UA مطابقت داشته باشند و نیازهای دسترس‌پذیری و بایگانی اسناد شما را برآورده سازند.

منابع اضافی