تحويل PowerPoint إلى PDF في Java

نظرة عامة

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

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

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

  • PPT
  • PPTX
  • ODP

لتحويل عرض تقديمي إلى PDF، عليك ببساطة تمرير اسم الملف كمعامل في Presentation class ثم حفظ العرض التقديمي كـ PDF باستخدام طريقة Save. يكشف Presentation class عن طريقة Save التي تُستخدم عادةً لتحويل عرض تقديمي إلى PDF.

Aspose.Slides يسمح لك بتحويل:

  • عرض تقديمي كامل إلى PDF
  • شرائح معينة في عرض تقديمي إلى PDF
  • عرض تقديمي

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

  • الصور
  • صناديق النصوص وأشكال أخرى
  • النصوص وتنسيقاتها
  • الفقرات وتنسيقاتها
  • الروابط التشعبية
  • الترويسات والتذييل
  • النقاط
  • الجداول

تحويل PowerPoint إلى PDF

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

يظهر لك هذا الكود في Java كيفية تحويل PowerPoint إلى PDF:

// يقوم بإنشاء كائن من فئة Presentation التي تمثل ملف PowerPoint
Presentation pres = new Presentation("PowerPoint.ppt");
try {
    // يحفظ العرض التقديمي كـ PDF
    pres.save("PPT-to-PDF.pdf", SaveFormat.Pdf);
} finally {
    if (pres != null) pres.dispose();
}

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

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

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

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

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

// يقوم بإنشاء كائن من فئة PdfOptions
PdfOptions pdfOptions = new PdfOptions();

// تعيين الجودة لصورة JPG
pdfOptions.setJpegQuality((byte)90);

// تعيين DPI للصور
pdfOptions.setSufficientResolution(300);

// تعيين سلوك لملفات التعريف
pdfOptions.setSaveMetafilesAsPng(true);

// تعيين مستوى ضغط النص للمحتوى النصي
pdfOptions.setTextCompression(PdfTextCompression.Flate);

// تحديد وضع الامتثال لملف PDF
pdfOptions.setCompliance(PdfCompliance.Pdf15);

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

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

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

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

// يقوم بإنشاء كائن من فئة Presentation التي تمثل ملف PowerPoint
Presentation pres = new Presentation("PowerPoint.pptx");
try {
    // يقوم بإنشاء كائن من فئة PdfOptions
    PdfOptions pdfOptions = new PdfOptions();
    
    // إضافة الشرائح المخفية
    pdfOptions.setShowHiddenSlides(true);
    
    // يحفظ العرض التقديمي كـ PDF
    pres.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    if (pres != null) pres.dispose();
}

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

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

// يقوم بإنشاء كائن Presentation الذي يمثل ملف PowerPoint
Presentation pres = new Presentation("PowerPoint.pptx");
try {
    /// يقوم بإنشاء كائن من فئة PdfOptions
    PdfOptions pdfOptions = new PdfOptions();
    
    // تعيين كلمة مرور PDF وأذونات الوصول
    pdfOptions.setPassword("password");
    pdfOptions.setAccessPermissions(PdfAccessPermissions.PrintDocument | PdfAccessPermissions.HighQualityPrint);
    
    // يحفظ العرض التقديمي كـ PDF
    pres.save("PPTX-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    if (pres != null) pres.dispose();
}

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

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

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

public void main(String[] args)
{
    LoadOptions loadOptions = new LoadOptions();
    FontSubstSendsWarningCallback warningCallback = new FontSubstSendsWarningCallback();
    loadOptions.setWarningCallback(warningCallback);

    Presentation pres = new Presentation("pres.pptx", loadOptions);
    try {
        
    } finally {
        if (pres != null) pres.dispose();
    }
}

private class FontSubstSendsWarningCallback implements IWarningCallback
{
    public int warning(IWarningInfo warning)
    {
        if (warning.getWarningType() == WarningType.CompatibilityIssue)
            return ReturnAction.Continue;

        if (warning.getWarningType() == WarningType.DataLoss &&
                warning.getDescription().startsWith("سيتم استبدال الخط"))
        {
            System.out.println("تحذير استبدال الخط: " + warning.getDescription());
        }

        return ReturnAction.Continue;
    }
}

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

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

// يقوم بإنشاء كائن Presentation الذي يمثل ملف PowerPoint
Presentation pres = new Presentation("PowerPoint.pptx");
try {
    // تعيين مصفوفة لمواقع الشرائح
    int[] slides = { 1, 3 };
    
    // يحفظ العرض التقديمي كـ PDF
    pres.save("PPTX-to-PDF.pdf", slides, SaveFormat.Pdf);
} finally {
    if (pres != null) pres.dispose();
}

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

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

// يقوم بإنشاء كائن Presentation الذي يمثل ملف PowerPoint 
Presentation pres = new Presentation("SelectedSlides.pptx");
try {
    Presentation outPres = new Presentation();
    try {
        ISlide slide = pres.getSlides().get_Item(0);

        outPres.getSlides().insertClone(0, slide);
        
        // تعيين نوع وحجم الشريحة 
        outPres.getSlideSize().setSize(612F, 792F, SlideSizeScaleType.EnsureFit);
        
        PdfOptions pdfOptions = new PdfOptions();
        INotesCommentsLayoutingOptions options = pdfOptions.getNotesCommentsLayouting();
        options.setNotesPosition(NotesPositions.BottomFull);

        outPres.save("PDFnotes_out.pdf", SaveFormat.Pdf, pdfOptions);
    } finally {
        if (pres != null) pres.dispose();
    }
} finally {
    if (pres != null) pres.dispose();
}

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

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

// يقوم بإنشاء كائن Presentation الذي يمثل ملف PowerPoint
Presentation pres = new Presentation("SelectedSlides.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    INotesCommentsLayoutingOptions options = pdfOptions.getNotesCommentsLayouting();
    options.setNotesPosition(NotesPositions.BottomFull);

    pres.save("Pdf_With_Notes.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    if (pres != null) pres.dispose();
}

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

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

يوضح هذا الكود في Java عملية تحويل PowerPoint إلى PDF حيث يتم الحصول على عدة ملفات PDF اعتمادًا على معايير الامتثال المختلفة:

Presentation pres = new Presentation("pres.pptx");
try {
    PdfOptions pdfOptions = new PdfOptions();
    
    pdfOptions.setCompliance(PdfCompliance.PdfA1a);
    pres.save("pres-a1a-compliance.pdf", SaveFormat.Pdf, pdfOptions);

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

    pdfOptions.setCompliance(PdfCompliance.PdfUa);
    pres.save("pres-ua-compliance.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    if (pres != null) pres.dispose();
}