تبدیل PPT و PPTX به JPG در جاوا

مقدمه

تبدیل ارائه‌های PowerPoint و OpenDocument به تصاویر JPG به اشتراک‌گذاری اسلایدها، بهینه‌سازی عملکرد و درج محتوا در وب‌سایت‌ها یا برنامه‌ها کمک می‌کند. Aspose.Slides به شما امکان تبدیل فایل‌های PPTX، PPT و ODP به تصاویر JPEG با کیفیت بالا را می‌دهد. این راهنما روش‌های مختلف تبدیل را توضیح می‌دهد.

با این ویژگی‌ها، پیاده‌سازی نمایشگر شخصی ارائه و ایجاد تصویر بند انگشتی برای هر اسلاید آسان است. این می‌تواند مفید باشد اگر بخواهید اسلایدهای ارائه را از کپی شدن محافظت کنید یا ارائه را در حالت فقط‑خواندنی نمایش دهید. Aspose.Slides به شما اجازه می‌دهد تا کل ارائه یا اسلاید خاصی را به فرمت‌های تصویری تبدیل کنید.

تبدیل PowerPoint PPT/PPTX به JPG

  1. یک نمونه از نوع Presentation ایجاد کنید.
  2. شی اسلاید از نوع ISlide را از مجموعه Presentation.getSlides() دریافت کنید.
  3. تصویر بند انگشتی هر اسلاید را ایجاد کرده و سپس به JPG تبدیل کنید. متد ISlide.getImage(float scaleX, float scaleY) برای دریافت تصویر بند انگشتی یک اسلاید استفاده می‌شود و یک شیٔ Images را برمی‌گرداند. متد getImage باید از اسلاید مورد نیاز از نوع ISlide فراخوانی شود و مقیاس‌های تصویر بند انگشتی حاصل به متد پاس داده می‌شوند.
  4. پس از دریافت تصویر بند انگشتی اسلاید، متد [IImage.save(String formatName, int imageFormat)](https://reference.aspose.com/slides/fa/java/com.aspose.slides/IImage#save(String formatName, int imageFormat)) را از شیٔ تصویر بند انگشتی فراخوانی کنید. نام فایل حاصل و فرمت تصویر را به آن پاس دهید.
Presentation pres = new Presentation("PowerPoint-Presentation.pptx");
try {
    for (ISlide sld : pres.getSlides()) {
        // یک تصویر با مقیاس کامل ایجاد می‌کند
        IImage slideImage = sld.getImage(1f, 1f);

        // تصویر را به فرمت JPEG در دیسک ذخیره می‌کند
        try {
              slideImage.save(String.format("Slide_%d.jpg", sld.getSlideNumber()), ImageFormat.Jpeg);
        } finally {
             if (slideImage != null) slideImage.dispose();
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

تبدیل PowerPoint PPT/PPTX به JPG با ابعاد سفارشی

برای تغییر ابعاد تصویر بند انگشتی و تصویر JPG حاصل، می‌توانید مقادیر ScaleX و ScaleY را با پاس کردن آنها به متدهای ISlide.getImage(float scaleX, float scaleY) تنظیم کنید:

Presentation pres = new Presentation("PowerPoint-Presentation.pptx");
try {
    // تعریف ابعاد
    int desiredX = 1200;
    int desiredY = 800;
    // دریافت مقادیر مقیاس‌دار X و Y
    float ScaleX = (float) (1.0 / pres.getSlideSize().getSize().getWidth()) * desiredX;
    float ScaleY = (float) (1.0 / pres.getSlideSize().getSize().getHeight()) * desiredY;

    for (ISlide sld : pres.getSlides())
    {
        // یک تصویر با مقیاس کامل ایجاد می‌کند
        IImage slideImage = sld.getImage(ScaleX, ScaleY);

        // تصویر را به فرمت JPEG در دیسک ذخیره می‌کند
        try {
              slideImage.save(String.format("Slide_%d.jpg", sld.getSlideNumber()), ImageFormat.Jpeg);
        } finally {
             if (slideImage != null) slideImage.dispose();
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

رندر نظرات هنگام ذخیره اسلایدها به‌صورت تصویر

Aspose.Slides for Java امکاناتی را فراهم می‌کند که به شما اجازه می‌دهد نظرات موجود در اسلایدهای ارائه را هنگام تبدیل این اسلایدها به تصاویر رندر کنید. این کد Java این عملیات را نشان می‌دهد:

Presentation pres = new Presentation("presentation.pptx");
try {
    NotesCommentsLayoutingOptions notesOptions = new NotesCommentsLayoutingOptions();
    notesOptions.setNotesPosition(NotesPositions.BottomTruncated);

    IRenderingOptions opts = new RenderingOptions();
    opts.setSlidesLayoutOptions(notesOptions);

    for (ISlide sld : pres.getSlides()) {
        IImage slideImage = sld.getImage(opts, new Dimension(740, 960));
        try {
             slideImage.save(String.format("Slide_%d.png", sld.getSlideNumber()));
        } finally {
                     if (slideImage != null) slideImage.dispose();
                }
    }
} finally {
    if (pres != null) pres.dispose();
}

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

آیا این روش از تبدیل دسته‌ای پشتیبانی می‌کند؟

بله، Aspose.Slides امکان تبدیل دسته‌ای چندین اسلاید به JPG را در یک عملیات فراهم می‌کند.

آیا تبدیل از SmartArt، نمودارها و سایر اشیاء پیچیده پشتیبانی می‌کند؟

بله، Aspose.Slides تمامی محتوا، از جمله SmartArt، نمودارها، جداول، شکل‌ها و موارد دیگر را رندر می‌کند. با این حال، دقت رندر ممکن است نسبت به PowerPoint کمی متفاوت باشد، به‌ویژه هنگام استفاده از قلم‌های سفارشی یا مفقود شده.

آیا محدودیتی در تعداد اسلایدهایی که می‌توان پردازش کرد وجود دارد؟

Aspose.Slides خود محدودیت سخت‌گیرانه‌ای بر تعداد اسلایدهای قابل پردازش اعمال نمی‌کند. اما ممکن است هنگام کار با ارائه‌های بزرگ یا تصاویر با وضوح بالا به خطای کمبود حافظه (out‑of‑memory) برخورد کنید.

موارد مرتبط

گزینه‌های دیگری برای تبدیل PPT/PPTX به تصویر را ببینید، مانند: