تحويل PPT و PPTX إلى PDF في PHP [متضمنة الميزات المتقدمة]

نظرة عامة

يقدم تحويل عروض PowerPoint (PPT، PPTX، ODP، إلخ) إلى صيغة PDF في PHP عدة مزايا، بما في ذلك التوافق عبر الأجهزة المختلفة والحفاظ على تخطيط وتنسيق العرض التقديمي. يوضح هذا الدليل كيفية تحويل العروض إلى مستندات PDF، واستخدام خيارات مختلفة للتحكم في جودة الصور، وتضمين الشرائح المخفية، وحماية ملفات PDF بكلمة مرور، واكتشاف استبدالات الخطوط، واختيار شرائح محددة للتحويل، وتطبيق معايير الامتثال على المستندات الناتجة.

تحويلات PowerPoint إلى PDF

باستخدام Aspose.Slides، يمكنك تحويل العروض في الصيغ التالية إلى PDF:

  • PPT
  • PPTX
  • ODP

لتحويل عرض إلى PDF، مرّر اسم الملف كمعامل إلى فئة Presentation ثم احفظ العرض كملف PDF باستخدام طريقة save. تُظهر فئة Presentation طريقة save التي تُستخدم عادةً لتحويل العرض إلى PDF.

يتيح Aspose.Slides لك تحويل:

  • العروض بالكامل إلى PDF
  • شرائح محددة من عرض إلى PDF

يصدّر Aspose.Slides العروض إلى PDF، مما يضمن أن تطابق ملفات PDF الناتجة العروض الأصلية بأقرب صورة. يتم عرض العناصر والسمات بدقة في التحويل، بما في ذلك:

  • الصور
  • مربعات النص والأشكال
  • تنسيق النص
  • تنسيق الفقرات
  • الروابط التشعبية
  • رؤوس وتذييلات
  • القوائم النقطية
  • الجداول

تحويل PowerPoint إلى PDF

تستخدم عملية التحويل القياسية من PowerPoint إلى PDF الخيارات الافتراضية. في هذه الحالة، يحاول Aspose.Slides تحويل العرض المقدم إلى PDF باستخدام إعدادات مثلى بأعلى مستويات الجودة.

يوضح هذا الكود كيفية تحويل عرض (PPT، PPTX، ODP، إلخ) إلى PDF:

# إنشاء كائن من الفئة Presentation التي تمثّل ملف PowerPoint أو OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # حفظ العرض كملف PDF.
    $presentation->save("PPT-to-PDF.pdf", SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

تحويل PowerPoint إلى PDF مع خيارات

يوفر Aspose.Slides خيارات مخصصة—خصائص ضمن فئة PdfOptions—تسمح لك بتخصيص PDF الناتج، أو قفل PDF بكلمة مرور، أو تحديد كيفية سير عملية التحويل.

تحويل PowerPoint إلى PDF مع خيارات مخصصة

باستخدام خيارات التحويل المخصصة، يمكنك تحديد إعداد الجودة المفضلة للصور النقطية، وتحديد طريقة معالجة ملفات الميتا، وتعيين مستوى ضغط للنص، وتكوين DPI للصور، والمزيد.

يُظهر مثال الكود أدناه كيفية تحويل عرض PowerPoint إلى PDF مع عدة خيارات مخصصة.

# إنشاء كائن من الفئة PdfOptions.
$pdfOptions = new PdfOptions();

# تعيين جودة صور JPG.
$pdfOptions->setJpegQuality(90);

# تعيين DPI للصور.
$pdfOptions->setSufficientResolution(300);

# تعيين سلوك ملفات الميتافايل.
$pdfOptions->setSaveMetafilesAsPng(true);

# تعيين مستوى ضغط النص للمحتوى النصي.
$pdfOptions->setTextCompression(PdfTextCompression::Flate);

# تحديد وضع الامتثال لـ PDF.
$pdfOptions->setCompliance(PdfCompliance::Pdf15);

# إنشاء كائن من الفئة Presentation التي تمثل ملف PowerPoint أو OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # حفظ العرض كملف PDF.
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

تحويل PowerPoint إلى PDF مع الشرائح المخفية

إذا كان العرض يحتوي على شرائح مخفية، يمكنك استخدام طريقة setShowHiddenSlides من فئة PdfOptions لتضمين الشرائح المخفية كصفحات في PDF الناتج.

يوضح هذا الكود كيفية تحويل عرض PowerPoint إلى PDF مع تضمين الشرائح المخفية:

# إنشاء كائن من الفئة Presentation التي تمثل ملف PowerPoint أو OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # إنشاء كائن من الفئة PdfOptions.
    $pdfOptions = new PdfOptions();

    # إضافة الشرائح المخفية.
    $pdfOptions->setShowHiddenSlides(true);

    # حفظ العرض كملف PDF.
    $presentation->save("PowerPoint-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

تحويل PowerPoint إلى PDF محمي بكلمة مرور

يُظهر هذا الكود كيفية تحويل عرض PowerPoint إلى PDF محمي بكلمة مرور باستخدام معلمات الحماية من فئة PdfOptions:

# إنشاء كائن من الفئة Presentation التي تمثل ملف PowerPoint أو OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # إنشاء كائن من الفئة PdfOptions.
    $pdfOptions = new PdfOptions();

    # تعيين كلمة مرور PDF وأذونات الوصول.
    $pdfOptions->setPassword("password");
    $pdfOptions->setAccessPermissions(PdfAccessPermissions::PrintDocument | PdfAccessPermissions::HighQualityPrint);

    # حفظ العرض كملف PDF.
    $presentation->save("PPTX-to-PDF.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

اكتشاف استبدالات الخطوط

يوفر Aspose.Slides طريقة setWarningCallback ضمن فئة PdfOptions لتتيح لك اكتشاف استبدالات الخطوط أثناء عملية التحويل من العرض إلى PDF.

يظهر هذا الكود كيفية اكتشاف استبدالات الخطوط:

class FontSubstitutionHandler {
    function warning($warning)
    {
        if (java_values($warning->getWarningType()) == WarningType::DataLoss &&
        $warning->getDescription()->startsWith("Font will be substituted")) {
            echo("Font substitution warning: " . $warning->getDescription());
        }

        return ReturnAction::Continue;
    }
}

// تعيين رد الاتصال التحذيري في خيارات PDF.
$pdfOptions = new PdfOptions();
$warningCallback = java_closure(new FontSubstitutionHandler(), null, java("com.aspose.slides.IWarningCallback"));
$pdfOptions->setWarningCallback($warningCallback);

// إنشاء كائن من الفئة Presentation التي تمثل ملف PowerPoint أو OpenDocument.
$presentation = new Presentation("sample.pptx");
try {
    // حفظ العرض كملف PDF.
    $presentation->save("output.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

تحويل شرائح محددة في PowerPoint إلى PDF

يُظهر هذا الكود كيفية تحويل شرائح محددة فقط من عرض PowerPoint إلى PDF:

# إنشاء كائن من الفئة Presentation التي تمثل ملف PowerPoint أو OpenDocument.
$presentation = new Presentation("PowerPoint.pptx");
try {
    # تعيين مصفوفة أرقام الشرائح.
    $slides = array(1, 3);

    # حفظ العرض كملف PDF.
    $presentation->save("PPTX-to-PDF.pdf", $slides, SaveFormat::Pdf);
} finally {
    $presentation->dispose();
}

تحويل PowerPoint إلى PDF مع حجم شريحة مخصص

يُظهر هذا الكود كيفية تحويل عرض PowerPoint إلى PDF بحجم شريحة محدد:

$slideWidth = 612.0;
$slideHeight = 792.0;

# إنشاء كائن من الفئة Presentation التي تمثل ملف PowerPoint أو OpenDocument.
$presentation = new Presentation("SelectedSlides.pptx");

# إنشاء عرض تقديمي جديد بحجم شريحة معدل.
$resizedPresentation = new Presentation();

try {
    # تعيين حجم الشريحة المخصص.
    $resizedPresentation->getSlideSize()->setSize($slideWidth, $slideHeight, SlideSizeScaleType::EnsureFit);

    # استنساخ الشريحة الأولى من العرض الأصلي.
    $slide = $presentation->getSlides()->get_Item(0);
    $resizedPresentation->getSlides()->insertClone(0, $slide);

    # حفظ العرض المعاد تحجيمه كملف PDF مع الملاحظات.
    $resizedPresentation->save("PDFnotes_out.pdf", SaveFormat::Pdf);
} finally {
    $resizedPresentation->dispose();
    $presentation->dispose();
}

تحويل PowerPoint إلى PDF في عرض ملاحظات الشرائح

يُظهر هذا الكود كيفية تحويل عرض PowerPoint إلى PDF يتضمن الملاحظات:

# إنشاء كائن من الفئة Presentation التي تمثل ملف PowerPoint أو OpenDocument.
$presentation = new Presentation("SelectedSlides.pptx");
try {
    # ضبط خيارات PDF مع تخطيط الملاحظات.
    $notesOptions = new NotesCommentsLayoutingOptions();
    $notesOptions->setNotesPosition(NotesPositions::BottomFull);
    $pdfOptions = new PdfOptions();
    $pdfOptions->setSlidesLayoutOptions($notesOptions);

    # حفظ العرض إلى ملف PDF مع الملاحظات.
    $presentation->save("PDF_with_notes.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

معايير الوصول والامتثال لـ PDF

يتيح Aspose.Slides لك استخدام إجراء تحويل يتوافق مع إرشادات الوصول إلى محتوى الويب (WCAG). يمكنك تصدير مستند PowerPoint إلى PDF باستخدام أي من معايير الامتثال التالية: PDF/A1a، PDF/A1b، وPDF/UA.

يُظهر هذا الكود عملية تحويل PowerPoint إلى PDF تنتج عدة ملفات PDF بناءً على معايير امتثال مختلفة:

$presentation = new Presentation("pres.pptx");
try {
    $pdfOptions = new PdfOptions();

    $pdfOptions->setCompliance(PdfCompliance::PdfA1a);
    $presentation->save("pres-a1a-compliance.pdf", SaveFormat::Pdf, $pdfOptions);

    $pdfOptions->setCompliance(PdfCompliance::PdfA1b);
    $presentation->save("pres-a1b-compliance.pdf", SaveFormat::Pdf, $pdfOptions);

    $pdfOptions->setCompliance(PdfCompliance::PdfUa);
    $presentation->save("pres-ua-compliance.pdf", SaveFormat::Pdf, $pdfOptions);
} finally {
    $presentation->dispose();
}

الأسئلة المتكررة

هل يمكنني تحويل عدة ملفات PowerPoint إلى PDF دفعة واحدة؟

نعم، يدعم Aspose.Slides التحويل الجماعي لعدة ملفات PPT أو PPTX إلى PDF. يمكنك تكرار الملفات وتطبيق عملية التحويل برمجيًا.

هل يمكن حماية PDF الناتج بكلمة مرور؟

بالتأكيد. استخدم فئة PdfOptions لتعيين كلمة مرور وتحديد أذونات الوصول أثناء عملية التحويل.

كيف يمكن تضمين الشرائح المخفية في PDF؟

استخدم طريقة setShowHiddenSlides في فئة PdfOptions لتضمين الشرائح المخفية في PDF الناتج.

هل يستطيع Aspose.Slides الحفاظ على جودة عالية للصور في PDF؟

نعم، يمكنك التحكم في جودة الصورة باستخدام طرق مثل setJpegQuality وsetSufficientResolution في فئة PdfOptions لضمان صور عالية الجودة في PDF.

هل يدعم Aspose.Slides معايير الامتثال PDF/A؟

نعم، يتيح Aspose.Slides تصدير PDFs تتوافق مع معايير مختلفة، بما في ذلك PDF/A1a، PDF/A1b، وPDF/UA، لضمان توافق مستنداتك مع متطلبات الوصول والأرشفة.

موارد إضافية