در پست قبلی وبلاگمان، Apache POI XSLF API را برای ایجاد و به‌روزرسانی فایل Microsoft PowerPoint PPTX با جاوا بررسی کردیم. Apache POI for Java به شما امکان می دهد با فایل های PPT و PPTX از داخل برنامه های جاوا خود کار کنید بدون اینکه وارد جزئیات فرمت فایل داخلی این فایل ها شوید. در این مقاله، جزئیات نحوه استفاده از Apache POI API برای درج یک تصویر در PPTX با جاوا را بررسی خواهیم کرد. همچنین نگاهی به نحوه خواندن اطلاعات تصویر از یک فایل PPTX با استفاده از جاوا خواهیم داشت.

سیستم مورد نیاز

قبل از شروع، مطمئن شوید که سیستم شما شرایط زیر را برآورده می کند.

  • JDK – Java SE 2 JDK 1.5 یا بالاتر
  • حافظه – 1 گیگابایت رم
  • سیستم عامل – Windows/ Linux/ Mac OS

نصب Apache POI برای جاوا

برای کار با کتابخانه POI Apache در برنامه خود به یک محیط توسعه جاوا مانند Eclipse، IntelliJ IDEA یا هر IDE دیگری که راحت هستید نیاز دارید. در مرحله بعد، مطابق شکل زیر، وابستگی Apache POI Maven را در فایل pom.xml برنامه خود اضافه کنید.

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.0.0</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-compress</artifactId>
    <version>1.23.0</version>
</dependency>
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.7</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version>
</dependency>

کتابخانه جاوا برای افزودن تصویر به فایل PPTX

در این مرحله فرض می کنیم که محیط توسعه شما آماده است و می توانیم با نوشتن کد افزودن تصاویر به فایل ارائه پاورپوینت شروع کنیم. این با استفاده از روش createPicture() کلاس XSLFSlide به دست می آید. درج یک تصویر در یک اسلاید در پاورپوینت شامل مراحل زیر است.

  • یک نمونه از کلاس XMLSlideShow ایجاد کنید
  • با فراخوانی متد createSlide در نمونه ارائه از مرحله 1، یک اسلاید به ارائه اضافه کنید.
  • تصویر را از فایل به عنوان آرایه بایت بارگیری کنید و آن را به نمونه XSLFPictureData اضافه کنید
  • متد createPicture را در نمونه اسلاید فراخوانی کنید
  • ارائه را در خروجی ذخیره کنید

نمونه کد زیر این مراحل را نشان می دهد.

//creating a presentation 
XMLSlideShow pptx = new XMLSlideShow();
  
//creating a slide in it 
XSLFSlide slide = pptx.createSlide();
  
//reading an image
File image = new File("fileformat.png");
  
//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
  
//adding the image to the presentation
XSLFPictureData idx = pptx.addPicture(picture, PictureType.PNG);
  
//creating a slide with given picture on it
XSLFPictureShape pic = slide.createPicture(idx);
  
//creating a file object 
File file = new File("imagetopresentation.pptx");
FileOutputStream out = new FileOutputStream(file);
  
//saving the changes to a file
pptx.write(out);
out.close();

اطلاعات تصویر را از یک فایل PPTX بخوانید

با Apache POI API برای جاوا، می‌توانید داده‌های همه تصاویر را از داخل یک فایل PPTX با استفاده از متد getPictureData() کلاس XMLSlideShow بخوانید. کد نمونه زیر این عملکرد را با خواندن تصاویر از یک ارائه نشان می دهد.

//open an existing presentation 
File file = new File("imagetopresentation.pptx");
XMLSlideShow pptx = new XMLSlideShow(new FileInputStream(file));
  
//reading all the images from the presentation
for(XSLFPictureData data : pptx.getPictureData()){
     byte[] bytes = data.getData();
     String fileName = data.getFileName();
     PictureType pictureFormat = data.getType();
     System.out.println("picture name: " + fileName);
     System.out.println("picture format: " + pictureFormat);
 }

 //saving the changes to a file
 FileOutputStream out = new FileOutputStream(file);
 pptx.write(out);
 out.close();

نتیجه

اجزای POI Apache برای کار با فایل های ارائه پاورپوینت به شما امکان می دهد تصاویر را در فایل های PPT و PPTX پاورپوینت از داخل برنامه جاوا خود وارد کنید. همچنین به شما امکان می دهد اطلاعات تصویر را از تصاویر روی اسلاید بخوانید. در وبلاگ های آینده خود، استفاده از اجزای جاوا POI Apache را برای کار با ارائه های پاورپوینت بیشتر نشان خواهیم داد. پس با ما همراه باشید.