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

نمای کلی

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

تبدیل PowerPoint به 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 تبدیل کند.

// نمونه‌سازی کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است.
Presentation presentation = new Presentation("PowerPoint.ppt");
try {
    // ارائه را به‌صورت PDF ذخیره کنید.
    presentation.save("PPT-to-PDF.pdf", SaveFormat.Pdf);
} finally {
    presentation.dispose();
}

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

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

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

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

// نمونه‌سازی کلاس 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 یا OpenDocument است.
Presentation presentation = new Presentation("PowerPoint.pptx");

try {
    // ذخیره ارائه به‌صورت سند PDF.
    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

تبدیل PowerPoint به PDF با اسلایدهای پنهان

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

// نمونه‌سازی کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است.
Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    // نمونه‌سازی کلاس PdfOptions.
    PdfOptions pdfOptions = new PdfOptions();

    // افزودن اسلایدهای پنهان.
    pdfOptions.setShowHiddenSlides(true);

    // ذخیره ارائه به‌صورت PDF.
    presentation.save("PowerPoint-to-PDF.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

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

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

// نمونه‌سازی کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است.
Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    // نمونه‌سازی کلاس PdfOptions.
    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 فراهم می‌کند.

public static void main(String[] args) {
    // نمونه‌سازی کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است.
    Presentation presentation = new Presentation("sample.pptx");

    // تنظیم فراخوانی هشدار در گزینه‌های PDF.
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setWarningCallback(new FontSubstitutionHandler());

    try {
        // ذخیره ارائه به‌صورت PDF.
        presentation.save("output.pdf", SaveFormat.Pdf, pdfOptions);
    } finally {
        presentation.dispose();
    }
}

// پیاده‌سازی فراخوانی هشدار.
private static class FontSubstitutionHandler implements IWarningCallback {
    public int warning(IWarningInfo warning) {
        if (warning.getWarningType() == WarningType.DataLoss &&
                warning.getDescription().startsWith("Font will be substituted")) {
            System.out.println("Font substitution warning: " + warning.getDescription());
        }

        return ReturnAction.Continue;
    }
}

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

// نمونه‌سازی کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است.
Presentation presentation = new Presentation("PowerPoint.pptx");
try {
    // تنظیم آرایه‌ای از شماره اسلایدها.
    int[] slides = { 1, 3 };

    // ذخیره ارائه به‌صورت PDF.
    presentation.save("PPTX-to-PDF.pdf", slides, SaveFormat.Pdf);
} finally {
    presentation.dispose();
}

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

float slideWidth = 612;
float slideHeight = 792;

// نمونه‌سازی کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است.
Presentation presentation = new Presentation("SelectedSlides.pptx");

// ایجاد یک ارائه جدید با اندازه اسلاید تنظیم‌شده.
Presentation resizedPresentation = new Presentation();

try {
    // تنظیم اندازه سفارشی اسلاید.
    resizedPresentation.getSlideSize().setSize(slideWidth, slideHeight, SlideSizeScaleType.EnsureFit);
    
    // کلون کردن اولین اسلاید از ارائه اصلی.
    ISlide slide = presentation.getSlides().get_Item(0);
    resizedPresentation.getSlides().insertClone(0, slide);

    // ذخیره ارائه تغییر اندازه یافته به‌صورت PDF با یادداشت‌ها.
    resizedPresentation.save("PDF_with_notes.pdf", SaveFormat.Pdf);
} finally {
    resizedPresentation.dispose();
    presentation.dispose();
}

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

// نمونه‌سازی کلاس Presentation که نمایانگر یک فایل PowerPoint یا OpenDocument است.
Presentation presentation = new Presentation("SelectedSlides.pptx");
try {
    // پیکربندی گزینه‌های PDF با چیدمان یادداشت‌ها.
    NotesCommentsLayoutingOptions notesOptions = new NotesCommentsLayoutingOptions();
    notesOptions.setNotesPosition(NotesPositions.BottomFull);
    PdfOptions pdfOptions = new PdfOptions();
    pdfOptions.setSlidesLayoutOptions(notesOptions);

    // ذخیره ارائه به‌صورت PDF با یادداشت‌ها.
    presentation.save("PDF_with_notes.pdf", SaveFormat.Pdf, pdfOptions);
} finally {
    presentation.dispose();
}

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

Aspose.Slides به شما اجازه می‌دهد از روال تبدیل استفاده کنید که با Web Content Accessibility Guidelines (WCAG) سازگار باشد. می‌توانید یک سند PowerPoint را به PDF صادر کنید و از هر یک از این استانداردهای انطباق استفاده کنید: PDF/A1a، PDF/A1b و PDF/UA.

Presentation presentation = new Presentation("pres.pptx");
try {
    PdfOptions 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();
}

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

سوالات متداول

آیا می‌توانم چندین فایل 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 به شما اجازه می‌دهد PDFهایی صادر کنید که با استانداردهای مختلف از جمله PDF/A1a، PDF/A1b و PDF/UA سازگار باشند و اطمینان حاصل کنید اسناد شما نیازهای دسترس‌پذیری و بایگانی را برآورده می‌کنند.

منابع اضافی