Apache POI PPT - Panduan Cepat

Sering kali, aplikasi perangkat lunak diperlukan untuk menghasilkan laporan dalam format file Microsoft Office. Terkadang, aplikasi bahkan diharapkan menerima file MS-Office sebagai data masukan.

Setiap programmer Java yang ingin menghasilkan file MS Office sebagai output harus menggunakan API yang telah ditentukan dan hanya-baca untuk melakukannya.

Apa itu Apache POI?

Apache POI adalah API populer yang memungkinkan pemrogram membuat, memodifikasi, dan menampilkan file MS-Office menggunakan program Java. Ini adalah perpustakaan sumber terbuka yang dikembangkan dan didistribusikan oleh Apache Software Foundation. Ini berisi kelas dan metode untuk memecahkan kode data input pengguna, atau file ke dalam dokumen MS Office.

Komponen Apache POI

Apache POI berisi kelas dan metode untuk bekerja pada semua dokumen Compound OLE2 MS-Office. Daftar komponen API ini diberikan di bawah ini -

  • POIFS (Poor Obfuscation Implementation File System)- Komponen ini adalah faktor dasar dari semua elemen POI lainnya. Ini digunakan untuk membaca file yang berbeda secara eksplisit.

  • HSSF (Horrible SpreadSheet Format) - Digunakan untuk membaca dan menulis format .xls dari file MS-Excel.

  • XSSF (XML SpreadSheet Format) - Digunakan untuk format file .xlsx dari MS-Excel.

  • HPSF (Horrible Property Set Format) - Ini digunakan untuk mengekstrak kumpulan properti dari file MS-Office.

  • HWPF (Horrible Word Processor Format) - Digunakan untuk membaca dan menulis .doc file ekstensi MS-Word.

  • XWPF (XML Word Processor Format) - Digunakan untuk membaca dan menulis file ekstensi .docx dari MS-Word.

  • HSLF (Horrible Slide Layout Format) - Digunakan untuk membaca, membuat, dan mengedit presentasi PowerPoint.

  • HDGF (Horrible DiaGram Format) - Berisi kelas dan metode untuk file biner MS-Visio.

  • HPBF (Horrible PuBlisher Format) - Digunakan untuk membaca dan menulis file MS-Publisher.

Tutorial ini memandu Anda melalui proses mengerjakan presentasi Microsoft PowerPoint menggunakan Java. Oleh karena itu pembahasannya dibatasiXSLF component.

Note - Versi lama POI mendukung format file biner seperti doc, xls, ppt, dll. Versi 3.5 dan seterusnya, POI mendukung format file OOXML dari MS-Office seperti docx, xlsx, pptx, dll.

Bab ini memandu Anda mempelajari beberapa rasa Java PowerPoint API dan fiturnya. Ada banyak vendor yang menyediakan API terkait Java PPT; beberapa di antaranya akan dibahas dalam bab ini.

Aspose Slides untuk Java

Slide Aspose untuk Java adalah Java PPT API berlisensi murni, dikembangkan dan didistribusikan oleh vendor Aspose. Versi terbaru dari API ini adalah 8.1.2, dirilis pada Juli 2014. Ini adalah API yang kaya dan berat (kombinasi kelas Java biasa dan kelas AWT) untuk mendesain komponen PPT yang dapat membaca, menulis, dan mengelola slide.

Kegunaan umum dari API ini adalah sebagai berikut -

  • Bangun presentasi yang dinamis
  • Render dan cetak presentasi dengan ketelitian tinggi
  • Hasilkan, edit, konversi, dan cetak presentasi

Apache POI

Apache POI adalah pustaka sumber terbuka 100% yang disediakan oleh Apache Software Foundation. Sebagian besar pengembang aplikasi skala kecil dan menengah sangat bergantung pada Apache POI (HSLF + XSLF). Ini mendukung semua fitur dasar perpustakaan PPT; namun, rendering dan ekstraksi teks adalah fitur utamanya. Diberikan di bawah ini adalah arsitektur Apache POI untuk PPT.

Bab ini memandu Anda melalui proses pengaturan Apache POI pada sistem berbasis Windows dan Linux. Apache POI dapat dengan mudah diinstal dan diintegrasikan dengan lingkungan Java Anda saat ini, mengikuti beberapa langkah sederhana tanpa prosedur pengaturan yang rumit. Administrasi pengguna diperlukan untuk instalasi.

Persyaratan sistem

JDK Java SE 2 JDK 1.5 atau lebih tinggi
Penyimpanan RAM 1 GB (disarankan)
Ruang Disk Tidak ada persyaratan minimum
Versi Sistem Operasi Windows XP atau yang lebih baru, Linux

Sekarang mari kita lanjutkan dengan langkah-langkah untuk menginstal Apache POI.

Langkah 1: Verifikasi Instalasi Java Anda

Pertama-tama, Anda harus menginstal Java Software Development Kit (SDK) di sistem Anda. Untuk memverifikasi ini, jalankan salah satu dari dua perintah berikut tergantung pada platform yang Anda kerjakan.

Jika penginstalan Java sudah dilakukan dengan benar, maka versi dan spesifikasi penginstalan Java Anda saat ini akan ditampilkan. Output sampel diberikan dalam tabel berikut.

Peron Perintah Output Sampel
Windows

Buka Command Console dan ketik -

\>java –version

Versi Java "1.7.0_60"

Java (TM) SE Run Time

Lingkungan (build 1.7.0_60-b19)

Server 64-bit Java Hotspot (TM)

VM (build 24.60-b09, mode campuran)

Linux

Buka terminal Command dan ketik -

$java –version

versi java "1.7.0_25"

Buka JDK Runtime Environment (rhel-2.3.10.4.el6_4-x86_64)

Buka VM Server JDK 64-Bit (build 23.7-b01, mode campuran)

  • Kami berasumsi bahwa pembaca tutorial ini telah menginstal Java SDK versi 1.7.0_60 di sistem mereka.

  • Jika Anda tidak memiliki Java SDK, unduh versi saat ini dari https://www.oracle.com/technetwork/java/javase/downloads/index.html dan instal.

Langkah 2: Setel Lingkungan Java Anda

Setel variabel lingkungan JAVA_HOME agar mengarah ke lokasi direktori dasar tempat Java diinstal pada mesin Anda. Sebagai contoh,

Peron Deskripsi
Windows Setel JAVA_HOME ke C: \ ProgramFiles \ java \ jdk1.7.0_60
Linux Ekspor JAVA_HOME = / usr / local / java-current

Tambahkan jalur lengkap lokasi kompilator Java ke Jalur Sistem.

Peron Deskripsi
Windows Tambahkan String "C: \ Program Files \ Java \ jdk1.7.0_60 \ bin" ke bagian akhir PATH variabel sistem.
Linux Ekspor PATH = $ PATH: $ JAVA_HOME / bin /

Jalankan perintahnya java -version dari command prompt seperti dijelaskan di atas.

Langkah 3: Instal Apache POI Library

Unduh Apache POI versi terbaru dari https://poi.apache.org/download.htmldan unzip isinya ke folder tempat perpustakaan yang diperlukan dapat ditautkan ke program Java Anda. Mari kita asumsikan file tersebut dikumpulkan dalam folder di drive C.

Gambar berikut menunjukkan direktori dan struktur file di dalam folder yang diunduh -

Tambahkan jalur lengkap dari lima jars seperti yang disorot pada gambar di atas ke CLASSPATH.

Peron Deskripsi
Windows

Tambahkan string berikut ke akhir variabel pengguna CLASSPATH -

“C: \ poi-3.9 \ poi-3.9-20121203.jar;"

“C: \ poi-3.9 \ poi-ooxml-3.9-20121203.jar;”

“C: \ poi-3.9 \ poi-ooxml-schemas-3.9-20121203.jar;”

“C: \ poi-3.9 \ ooxml-lib \ dom4j-1.6.1.jar;”

“C: \ poi-3.9 \ ooxml-lib \ xmlbeans-2.3.0.jar;.;”

Linux

Ekspor CLASSPATH = $ CLASSPATH:

/usr/share/poi-3.9/poi-3.9-20121203.tar:

/usr/share/poi-3.9/poi-ooxml-schemas-3.9-20121203.tar:

/usr/share/poi-3.9/poi-ooxml-3.9-20121203.tar:

/usr/share/poi-3.9/ooxml-lib/dom4j-1.6.1.tar:

/usr/share/poi-3.9/ooxml-lib/xmlbeans-2.3.0.tar

pom.xml

Berikut ini adalah file pom.xml untuk menjalankan program dalam tutorial ini.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>ApachePoiPPT</groupId>
   <artifactId>ApachePoiPPT</artifactId>
   <version>0.0.1-SNAPSHOT</version>
   <build>
      <sourceDirectory>src</sourceDirectory>
      <plugins>
         <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.5.1</version>
            <configuration>
               <source>1.8</source>
               <target>1.8</target>
            </configuration>
         </plugin>
      </plugins>
   </build>
   <dependencies>  
      <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi</artifactId>
         <version>3.9</version>
      </dependency>
      <dependency>
         <groupId>org.apache.poi</groupId>
         <artifactId>poi-ooxml</artifactId>
         <version>3.9</version>
      </dependency>    
   </dependencies>
</project>

Dalam bab ini, kita akan belajar tentang beberapa kelas dan metode pada Apache POI API yang sangat penting untuk bekerja pada file PPT menggunakan program Java.

Presentasi

Untuk membuat dan mengelola presentasi, Anda memiliki kelas yang disebut XMLSlideShow dalam paket org.apache.poi.xslf.usermodel . Diberikan di bawah ini adalah beberapa metode penting dan konstruktor kelas ini.

Class - XMLSlideShow

Package - org.apache.poi.xslf.usermodel

S.No Pembuat & Deskripsi
1

XMLSlideShow(java.io.InputStream inputStream)

Anda dapat membuat instance kelas ini dengan meneruskan objek kelas inputstream padanya.

S.No Metode & Deskripsi
1

int addPicture (byte[] pictureData, int format)

Dengan menggunakan metode ini, Anda dapat menambahkan gambar ke presentasi.

2

XSLFSlide createSlide()

Membuat slide kosong dalam presentasi.

3

XSLFSlide createSlide(XSLFSlideLayout layout)

Membuat slide dengan tata letak slide tertentu.

4

java.util.List <XSLFPictureData> getAllPictures()

Mengembalikan larik dari semua gambar dalam presentasi.

5

java.awt.Dimension getPageSize()

Dengan menggunakan metode ini, Anda dapat mengetahui ukuran halaman saat ini.

6

XSLFSlideMaster[] getSlideMasters()

Mengembalikan larik dari semua slide dalam presentasi.

7

XSLFSlide[] getSlides()

Mengembalikan semua slide dalam presentasi.

8

XSLFSlide removeSlide(int index)

Dengan menggunakan metode ini, Anda dapat menghapus slide dari presentasi.

9

void setPageSize(java.awt.Dimension pgSize)

Dengan menggunakan metode ini, Anda dapat mengatur ulang ukuran halaman.

10

void setSlideOrder(XSLFSlide slide, int newIndex)

Dengan menggunakan metode ini, Anda dapat menyusun ulang slide.

Meluncur

Untuk membuat dan mengelola slide dalam presentasi, metode file XSLFSlidekelas digunakan. Beberapa metode penting dari kelas ini disebutkan di bawah.

Class - XSLFSlide

Package - org.apache.poi.xslf.usermodel

S.No Metode & Deskripsi
1

XSLFBackground getBackground()

Mengembalikan XSLFBackgroundobjek yang dapat digunakan untuk mengambil detail seperti warna dan jangkar latar belakang slide. Anda juga dapat menggambar bentuk di slide menggunakan objek ini.

2

XSLFSlideLayout getSlideLayout()

Menyediakan akses ke XSLFSlideLayout objek dari slide saat ini.

3

XSLFSlideMaster getSlideMaster()

Memberikan akses ke master slide dari slide saat ini.

4

XSLFTheme getTheme()

Mengembalikan XSLFTheme objek dari slide saat ini.

5

java.lang.String getTitle()

Mengembalikan judul slide saat ini.

6

XSLFSlide importContent(XSLFSheet src)

Menyalin konten slide lain ke slide ini.

Master Slide

Ini adalah komponen presentasi yang memiliki tata letak slide yang berbeda. ItuXSLFSlideMasterkelas memberi Anda akses ke sana. Di bawah ini disebutkan beberapa metode penting dari kelas ini.

Class - XSLFSlideMaster

Package - org.apache.poi.xslf.usermodel

S.No Metode & Deskripsi
1

XSLFBackground getBackground()

Mengembalikan latar belakang umum dari master slide.

2

XSLFSlideLayout getLayout(SlideLayout type)

Mengembalikan objek XSLFSlideLayout.

3

XSLFSlideLayout[] getSlideLayouts()

Mengembalikan semua tata letak slide di master slide ini.

Tata Letak Slide

Perpustakaan POI memiliki kelas yang disebut XSLFSlideLayout, yang dengannya Anda dapat mengelola tata letak slide.

Class - XSLFSlideLayout

Package - org.apache.poi.xslf.usermodel

S.No Metode & Deskripsi
1

void copyLayout(XSLFSlide slide)

Metode ini akan menyalin placeholder dari tata letak ini ke slide yang diberikan.

Paragraf Teks

Anda dapat menulis konten ke slide menggunakan XSLFTextParagraphkelas. Di bawah ini disebutkan beberapa metode penting dari kelas ini.

Class - XSLFTextParagraph

Package - org.apache.poi.xslf.usermodel

S.No Metode & Deskripsi
1

XSLFTextRun addLineBreak()

Menyisipkan jeda baris dalam paragraf.

2

XSLFTextRun addNewTextRun()

Menambahkan run of text baru dalam paragraf.

3

void setBulletAutoNumber(ListAutoNumber scheme, int startAt)

Menerapkan poin poin bernomor otomatis ke paragraf.

4

void setIndent(double value)

Menyetel indentasi ke teks di paragraf.

5

void setLeftMargin(double value)

Metode ini digunakan untuk menambahkan margin kiri paragraf.

6

void setLineSpacing(double linespacing)

Metode ini digunakan untuk mengatur spasi baris dalam paragraf.

7

void setTextAlign(TextAlign align)

Metode ini digunakan untuk mengatur perataan yang akan diatur ke paragraf.

Jalankan Teks

Ini adalah tingkat pemisahan teks terendah dalam badan teks. Kamu punyaXSLFTextRunkelas untuk mengelola teks paragraf. Di bawah ini disebutkan beberapa metode penting dari kelas ini.

Class - XSLFTextParagraph

Package - org.apache.poi.xslf.usermodel

S.No Metode & Deskripsi
1

XSLFHyperlink createHyperlink()

Membuat hyperlink dalam presentasi.

2

XSLFHyperlink getHyperlink()

Metode ini digunakan untuk mendapatkan hyperlink.

3

java.lang.String getText()

Mengembalikan nilai simpul Teks ini sebagai string Java.

4

void setBold(boolean bold)

Metode ini digunakan untuk mengatur teks dalam Bold.

5

void setCharacterSpacing(double spc)

Mengatur jarak antar karakter dalam teks run.

6

void setFontColor(java.awt.Color color)

Mengatur warna font teks.

7

void setFontSize(double fontSize)

Mengatur ukuran font teks.

8

void setItalic(boolean italic)

Metode ini digunakan untuk membuat paragraf menjadi miring.

9

void setStrikethrough(boolean strike)

Metode ini digunakan untuk memformat run of text sebagai teks strikethrough.

10

void setSubscript(boolean flag)

Metode ini digunakan untuk memformat teks sebagai subskrip.

11

void setSuperscript(boolean flag)

Metode ini digunakan untuk memformat teks dalam proses ini sebagai superscript.

12

void setText(java.lang.String text)

Metode ini digunakan untuk mengatur teks dalam proses.

13

void setUnderline(boolean underline)

Metode ini digunakan untuk menggarisbawahi teks dalam proses teks.

Bentuk teks

Di PPT, kami memiliki bentuk yang dapat menampung teks di dalamnya. Kami dapat mengelola ini menggunakanXSLFTextShapekelas. Di bawah ini disebutkan beberapa metode penting dari kelas ini.

Class - XSLFTextShape

Package - org.apache.poi.xslf.usermodel

S.No Metode & Deskripsi
1

void setPlaceholder(Placeholder placeholder)

Dengan metode ini, Anda dapat memilih placeholder.

2

Placeholder getTextType()

Mengembalikan tipe tempat penampung saat ini.

3

void clearText()

Menghapus area teks dari bentuk teks saat ini.

4

XSLFTextParagraph addNewTextParagraph()

Menambahkan paragraf baru ke bentuk.

5

void drawContent(java.awt.Graphics2D graphics)

Metode ini memungkinkan Anda menggambar konten apa pun di slide.

HyperLink

Perpustakaan POI memiliki kelas yang disebut XSLFHyperlinkyang dapat digunakan untuk membuat hyperlink dalam presentasi. Di bawah ini disebutkan beberapa metode penting dari kelas ini.

Class - XSLFHyperlink

Package - org.apache.poi.xslf.usermodel

S.No Metode & Deskripsi
1

java.net.URI getTargetURL()

Mengembalikan URL yang ada di slide presentasi.

2

void setAddress(java.lang.String address)

Metode ini digunakan untuk mengatur alamat ke URL.

3

void setAddress(XSLFSlide slide)

Set alamat ke URL yang ada di slide presentasi.

Umumnya, kami menggunakan MS-PowerPoint untuk membuat presentasi. Sekarang mari kita lihat cara membuat presentasi menggunakan Java. Setelah menyelesaikan bab ini, Anda akan dapat membuat presentasi MS-PowerPoint baru dan membuka PPT yang ada dengan program Java Anda.

Membuat Presentasi Kosong

Untuk membuat presentasi kosong, Anda harus membuat instance XMLSlideShowkelas dari paket org.poi.xslf.usermodel -

XMLSlideShow ppt = new XMLSlideShow();

Simpan perubahan ke dokumen PPT menggunakan FileOutputStream kelas -

File file = new File("C://POIPPT//Examples//example1.pptx");
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);

Diberikan di bawah ini adalah program lengkap untuk membuat presentasi MS-PowerPoint kosong.

import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class CreatePresentation {
   
   public static void main(String args[]) throws IOException {
   
      //creating a new empty slide show
      XMLSlideShow ppt = new XMLSlideShow();	     
      
      //creating an FileOutputStream object
      File file = new File("example1.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //saving the changes to a file
      ppt.write(out);
      System.out.println("Presentation created successfully");
      out.close()
   }
}

Simpan kode Java di atas sebagai CreatePresentation.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac CreatePresentation.java $java CreatePresentation

Jika lingkungan sistem Anda dikonfigurasi dengan pustaka POI, itu akan mengkompilasi dan mengeksekusi untuk menghasilkan file PPT kosong bernama example1.pptx di direktori Anda saat ini dan tampilkan output berikut pada command prompt -

Presentation created successfully

Dokumen PowerPoint kosong muncul sebagai berikut -

Mengedit Presentasi yang Ada

Untuk membuka presentasi yang ada, buat instance XMLSlideShow kelas dan lulus FileInputStream objek file yang akan diedit, sebagai argumen untuk XMLSlideShow konstruktor.

File file = new File(“C://POIPPT//Examples//example1.pptx”);
FileInputstream inputstream = new FileInputStream(file);
XMLSlideShow ppt = new XMLSlideShow(inputstream);

Anda dapat menambahkan slide ke presentasi menggunakan createSlide()metode kelas XMLSlideShow yang ada dalam paket org.poi.xslf.usermodel .

XSLFSlide slide1 = ppt.createSlide();

Diberikan di bawah ini adalah program lengkap untuk membuka dan menambahkan slide ke PPT yang ada -

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class EditPresentation {

   public static void main(String ar[]) throws IOException {
	   
      //opening an existing slide show
      File file = new File("example1.pptx");
      FileInputStream inputstream = new FileInputStream(file);
      XMLSlideShow ppt = new XMLSlideShow(inputstream);
      
      //adding slides to the slodeshow
      XSLFSlide slide1 = ppt.createSlide();
      XSLFSlide slide2 = ppt.createSlide();
      
      //saving the changes 
      FileOutputStream out = new FileOutputStream(file);
      ppt.write(out);
      
      System.out.println("Presentation edited successfully");
      out.close();	
   }
}

Simpan kode Java di atas sebagai EditPresentation.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac EditPresentation.java $java EditPresentation

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

slides successfully added

Output dokumen PPT dengan slide yang baru ditambahkan terlihat sebagai berikut -

Setelah menambahkan slide ke PPT, Anda dapat menambah, melakukan, membaca, dan menulis operasi pada slide.

Di bab sebelumnya, Anda telah melihat cara membuat slide kosong dan cara menambahkan slide ke dalamnya. Di bab ini, Anda akan mempelajari cara mendapatkan daftar slide yang tersedia, dan cara membuat slide dengan tata letak berbeda.

Tata letak slide yang tersedia

Presentasi PowerPoint memiliki tata letak slide, dan Anda dapat memilih tata letak yang diinginkan untuk mengedit slide. Pertama-tama, mari kita cari tahu daftar semua tata letak slide yang tersedia.

  • Ada master slide yang berbeda dan di setiap master slide, ada beberapa tata letak slide.

  • Anda bisa mendapatkan daftar master slide menggunakan getSlideMasters() metode dari XMLSlideShow kelas.

  • Anda bisa mendapatkan daftar tata letak slide dari setiap master slide menggunakan getSlideLayouts() metode dari XSLFSlideMaster kelas.

  • Anda bisa mendapatkan nama tata letak slide dari objek tata letak menggunakan getType() metode dari XSLFSlideLayout kelas.

Note- Semua kelas ini milik paket org.poi.xslf.usermodel .

Diberikan di bawah ini adalah program lengkap untuk mendapatkan daftar tata letak slide yang tersedia di PPT -

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;

public class SlideLayouts {

   public static void main(String args[]) throws IOException {
   
      //create an empty presentation
      XMLSlideShow ppt = new XMLSlideShow();
      System.out.println("Available slide layouts:")
   
      //getting the list of all slide masters
      for(XSLFSlideMaster master : ppt.getSlideMasters()) {
   
         //getting the list of the layouts in each slide master
         for(XSLFSlideLayout layout : master.getSlideLayouts()) {
   
            //getting the list of available slides
            System.out.println(layout.getType());
         } 
      }
   }
}

Simpan kode Java di atas sebagai SlideLayouts.java , lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac SlideLayouts.java $java SlideLayouts

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

Available slide layouts:
TITLE
PIC_TX
VERT_TX
TWO_TX_TWO_OBJ
BLANK
VERT_TITLE_AND_TX
TITLE_AND_CONTENT
TITLE_ONLY
SECTION_HEADER
TWO_OBJ
OBJ_TX

Di bawah ini adalah beberapa contoh tata letak slide yang tersedia dengan MS-Office 360 ​​edisi 2013.

Tata Letak Judul

Mari kita buat slide dalam PPT menggunakan tata letak Judul. Ikuti langkah-langkah yang diberikan di bawah ini -

Step 1 - Buat presentasi kosong dengan membuat instance XMLSlideShow kelas seperti yang ditunjukkan di bawah ini.

XMLSlideShow ppt = new XMLSlideShow();

Step 2 - Dapatkan daftar master slide menggunakan getSlideMasters()metode. Setelah itu, pilih master slide yang diinginkan menggunakan indeks seperti yang ditunjukkan di bawah ini.

XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

Di sini kita mendapatkan master slide default yang ada di lokasi ke- 0 dari array master slide.

Step 3 - Dapatkan tata letak yang diinginkan menggunakan getLayout() metode dari XSLFSlideMasterkelas. Metode ini menerima parameter di mana Anda harus melewatkan salah satu variabel statis dariSlideLayoutclass, yang mewakili tata letak yang kami inginkan. Ada beberapa variabel di kelas ini di mana setiap variabel mewakili tata letak slide.

Potongan kode yang diberikan di bawah ini menunjukkan cara membuat tata letak judul -

XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);

Step 4 - Buat slide baru dengan meneruskan objek tata letak slide sebagai parameter.

XSLFSlide slide = ppt.createSlide(titleLayout);

Step 5 - Pilih placeholder menggunakan getPlaceholder() metode dari XSLFSlidekelas. Metode ini menerima parameter integer. Dengan melewati0 untuk itu, Anda akan mendapatkan XSLFTextShapeobjek, yang digunakan untuk mengakses area teks judul slide. Setel judul menggunakan metode setText () seperti yang ditunjukkan di bawah ini.

XSLFTextShape title1 = slide.getPlaceholder(0);
//setting the title init
title1.setText("Tutorials point");

Diberikan di bawah ini adalah program lengkap untuk membuat slide dengan tata letak Judul dalam presentasi -

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class TitleLayout {

   public static void main(String args[]) throws IOException {
   
      //creating presentation
      XMLSlideShow ppt = new XMLSlideShow();	    	
      
      //getting the slide master object
      XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
      
      //get the desired slide layout 
      XSLFSlideLayout titleLayout = slideMaster.getLayout(SlideLayout.TITLE);
                                                     
      //creating a slide with title layout
      XSLFSlide slide1 = ppt.createSlide(titleLayout);
      
      //selecting the place holder in it 
      XSLFTextShape title1 = slide1.getPlaceholder(0); 
      
      //setting the title init 
      title1.setText("Tutorials point");
      
      //create a file object
      File file = new File("C://POIPPT//Examples//Titlelayout.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //save the changes in a PPt document
      ppt.write(out);
      System.out.println("slide cretated successfully");
      out.close();  
   }
}

Simpan kode Java di atas sebagai TitleLayout.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac TitleLayout.java $java TitleLayout

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut.

slide created successfully

Dokumen PPT dengan slide tata letak Judul yang baru ditambahkan muncul sebagai berikut -

Judul dan tata letak konten

Mari kita membuat slide dalam PPT menggunakan tata letak Judul dan konten. Ikuti langkah-langkah yang diberikan di bawah ini.

Step 1 - Buat presentasi kosong dengan membuat instance XMLSlideShow kelas seperti yang ditunjukkan di bawah ini.

XMLSlideShow ppt = new XMLSlideShow();

Step 2 - Dapatkan daftar master slide menggunakan getSlideMasters()metode. Pilih master slide yang diinginkan menggunakan indeks seperti yang ditunjukkan di bawah ini.

XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

Di sini kita mendapatkan master slide default yang berada di lokasi ke-0 dari array master slide.

Step 3 - Dapatkan tata letak yang diinginkan menggunakan getLayout() metode dari XSLFSlideMasterkelas. Metode ini menerima parameter di mana Anda harus melewatkan salah satu variabel statis dariSlideLayoutkelas yang mewakili tata letak yang kami inginkan. Ada beberapa variabel di kelas ini yang mewakili tata letak slide.

Cuplikan kode berikut menunjukkan cara membuat tata letak judul dan konten -

XSLFSlideLayout contentlayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);

Step 4 - Buat slide baru dengan meneruskan objek tata letak slide sebagai parameter.

XSLFSlide slide = ppt.createSlide(SlideLayout.TITLE_AND_CONTENT);

Step 5 - Pilih placeholder menggunakan getPlaceholder() metode dari XSLFSlidekelas. Metode ini menerima parameter integer. Dengan melewati1 untuk itu, Anda akan mendapatkan XSLFTextShapeobjek, yang digunakan untuk mengakses area konten slide. Setel judul menggunakan metode setText () seperti yang ditunjukkan di bawah ini.

XSLFTextShape title1 = slide1.getPlaceholder(1);
//setting the title init 
title1.setText("Introduction");

Step 6 - Hapus teks yang ada di slide menggunakan clearText() metode dari XSLFTextShape kelas.

body.clearText();

Step 7 - Tambahkan paragraf baru menggunakan addNewTextParagraph()metode. Sekarang tambahkan teks baru ke paragraf menggunakanaddNewTextRun()metode. Sekarang untuk menjalankan teks, tambahkan teks menggunakansetText() metode seperti yang ditunjukkan di bawah ini.

body.addNewTextParagraph().addNewTextRun().setText("this is  my first slide body");

Diberikan di bawah ini adalah program lengkap untuk membuat slide dengan tata letak Judul dalam presentasi -

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class TitleAndBodyLayout {
   
   public static void main(String args[]) throws IOException {
   
      //creating presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the slide master object
      XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
      
      //select a layout from specified list
      XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
      
      //creating a slide with title and content layout
      XSLFSlide slide = ppt.createSlide(slidelayout);
      //selection of title place holder
      XSLFTextShape title = slide.getPlaceholder(0);
      
      //setting the title in it
      title.setText("introduction");
      
      //selection of body placeholder
      XSLFTextShape body = slide.getPlaceholder(1);
      
      //clear the existing text in the slide
      body.clearText();
      
      //adding new paragraph
      body.addNewTextParagraph().addNewTextRun().setText("this is  my first slide body");
      
      //create a file object
      File file = new File("contentlayout.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //save the changes in a file
      ppt.write(out);
      System.out.println("slide cretated successfully");
      out.close();                
   }
}

Simpan kode Java di atas sebagai TitleLayout.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac TitleLayout.java $java TitleLayout

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

slide created successfully

Dokumen PPT dengan slide tata letak Judul yang baru ditambahkan muncul sebagai berikut -

Dengan cara yang sama, Anda juga dapat membuat slide dengan tata letak yang berbeda.

Setelah menyelesaikan bab ini, Anda akan dapat menghapus, menyusun ulang, dan melakukan operasi baca dan tulis pada slide.

Mengubah Slide

Kita dapat mengubah ukuran halaman slide menggunakan setPageSize() metode dari XMLSlideShow kelas.

Awalnya buat presentasi seperti yang ditunjukkan di bawah ini -

File file = new File("C://POIPPT//Examples// TitleAndContentLayout.pptx");

//create presentation
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

Dapatkan ukuran slide saat ini menggunakan getPageSize() metode dari XMLSlideShow kelas.

java.awt.Dimension pgsize = ppt.getPageSize();

Atur ukuran halaman menggunakan setPageSize() metode.

ppt.setPageSize(new java.awt.Dimension(1024, 768));

Program lengkap untuk mengubah ukuran slide diberikan di bawah ini -

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;

public class ChangingSlide {
   
   public static void main(String args[]) throws IOException {

      //create file object
      File file = new File("TitleAndContentLayout.pptx");
	 
      //create presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the current page size
      java.awt.Dimension pgsize = ppt.getPageSize();
      int pgw = pgsize.width; //slide width in points
      int pgh = pgsize.height; //slide height in points
      
      System.out.println("current page size of the PPT is:");
      System.out.println("width :" + pgw);
      System.out.println("height :" + pgh);
      
      //set new page size
      ppt.setPageSize(new java.awt.Dimension(2048,1536));
      
      //creating file object
      FileOutputStream out = new FileOutputStream(file);
      
      //saving the changes to a file
      ppt.write(out);
      System.out.println("slide size changed to given dimentions ");
      out.close();	
   }
}

Simpan kode Java di atas sebagai ChangingSlide.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac ChangingSlide.java $java ChangingSlide

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut.

current page size of the presentation is : 
width :720
height :540
slide size changed to given dimensions

Diberikan di bawah ini adalah snapshot dari presentasi sebelum mengubah ukuran slide -

Slide muncul sebagai berikut setelah mengubah ukurannya -

Menyusun Ulang Slide

Anda dapat mengatur urutan slide menggunakan setSlideOrder()metode. Diberikan di bawah ini adalah prosedur untuk mengatur urutan slide.

Buka dokumen PPT yang ada seperti yang ditunjukkan di bawah ini -

File file = new File("C://POIPPT//Examples//example1.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

Dapatkan slide menggunakan getSlides() metode seperti yang ditunjukkan di bawah ini -

XSLFSlide[] slides = ppt.getSlides();

Pilih slide dari larik slide, dan ubah urutannya menggunakan setSlideOrder() metode seperti yang ditunjukkan di bawah ini -

//selecting the fourth slide
XSLFSlide selectesdslide = slides[4];

//bringing it to the top
ppt.setSlideOrder(selectesdslide, 1);

Diberikan di bawah ini adalah program lengkap untuk menyusun ulang slide dalam presentasi -

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class ReorderSlide {	
   
   public static void main(String args[]) throws IOException {
   
      //opening an existing presentation
      File file = new File("example1.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //get the slides 
      XSLFSlide[] slides = ppt.getSlides();    
      
      //selecting the fourth slide
      XSLFSlide selectesdslide = slides[13];
      
      //bringing it to the top
      ppt.setSlideOrder(selectesdslide, 0);
      
      //creating an file object 
      FileOutputStream out = new FileOutputStream(file);
	  
      //saving the changes to a file
      ppt.write(out);
      out.close();	
   }
}

Simpan kode Java di atas sebagai ReorderSlide.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac ReorderSlide.java $java ReorderSlide

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut.

Reordering of the slides is done

Diberikan di bawah ini adalah snapshot dari presentasi sebelum menyusun ulang slide -

Setelah menyusun ulang slide, presentasi muncul sebagai berikut. Di sini kami telah memilih slide dengan gambar dan memindahkannya ke atas.

Menghapus Slide

Anda dapat menghapus slide menggunakan removeSlide()metode. Ikuti langkah-langkah yang diberikan di bawah ini untuk menghapus slide.

Buka presentasi yang sudah ada menggunakan XMLSlideShow kelas seperti yang ditunjukkan di bawah ini -

File file = new File("C://POIPPT//Examples//image.pptx");
XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));

Hapus slide yang diperlukan menggunakan removeSlide()metode. Metode ini menerima parameter integer. Teruskan indeks slide yang akan dihapus ke metode ini.

ppt.removeSlide(1);

Diberikan di bawah ini adalah program untuk menghapus slide dari presentasi -

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;

public class Deleteslide { 
   
   public static void main(String args[]) throws IOException {
   
      //Opening an existing slide
      File file = new File("image.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //deleting a slide
      ppt.removeSlide(1);
      
      //creating a file object
      FileOutputStream out = new FileOutputStream(file);
      
      //Saving the changes to the presentation
      ppt.write(out);
      out.close();	
   }
}

Simpan kode Java di atas sebagai Deleteslide.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac Deleteslide.java $java Deleteslide

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

reordering of the slides is done

Cuplikan di bawah ini adalah presentasi sebelum menghapus slide -

Setelah menghapus slide, presentasi muncul sebagai berikut -

Dalam bab ini, Anda akan belajar cara menambahkan gambar ke PPT dan cara membaca gambar darinya.

Menambahkan Gambar

Anda dapat menambahkan gambar ke presentasi menggunakan createPicture() metode dari XSLFSlide. Metode ini menerima citra dalam bentuk format byte array. Oleh karena itu, Anda harus membuat larik byte dari gambar yang akan ditambahkan ke presentasi.

Ikuti prosedur yang diberikan untuk menambahkan gambar ke presentasi. Buat slideshow kosong menggunakanXMLSlideShow seperti yang ditunjukkan di bawah ini -

XMLSlideShow ppt = new XMLSlideShow();

Buat presentasi kosong di dalamnya menggunakan createSlide().

XSLFSlide slide = ppt.createSlide();

Baca file gambar yang akan ditambahkan dan ubah menjadi byte array menggunakan IOUtils.toByteArray() dari IOUtils kelas seperti yang ditunjukkan di bawah ini -

//reading an image
File image = new File("C://POIPPT//boy.jpg");

//converting it into a byte array
byte[] picture = IOUtils.toByteArray(new FileInputStream(image));

Tambahkan gambar ke presentasi menggunakan addPicture(). Metode ini menerima dua variabel: format larik byte dari gambar yang akan ditambahkan dan variabel statis yang mewakili format file gambar. Penggunaan fileaddPicture() metode ditunjukkan di bawah ini -

int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);

Sematkan gambar ke slide menggunakan createPicture() seperti yang ditunjukkan di bawah ini -

XSLFPictureShape pic = slide.createPicture(idx);

Diberikan di bawah ini adalah program lengkap untuk menambahkan gambar ke slide dalam presentasi -

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.util.IOUtils;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;
import org.apache.poi.xslf.usermodel.XSLFPictureShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class AddingImage {
   
   public static void main(String args[]) throws IOException {
   
      //creating a presentation 
      XMLSlideShow ppt = new XMLSlideShow();
      
      //creating a slide in it 
      XSLFSlide slide = ppt.createSlide();
      
      //reading an image
      File image = new File("C://POIPPT//boy.jpg");
      
      //converting it into a byte array
      byte[] picture = IOUtils.toByteArray(new FileInputStream(image));
      
      //adding the image to the presentation
      int idx = ppt.addPicture(picture, XSLFPictureData.PICTURE_TYPE_PNG);
      
      //creating a slide with given picture on it
      XSLFPictureShape pic = slide.createPicture(idx);
      
      //creating a file object 
      File file = new File("addingimage.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //saving the changes to a file
      ppt.write(out)
      System.out.println("image added successfully");
      out.close();	
   }
}

Simpan kode Java di atas sebagai AddingImage.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac AddingImage.java $java AddingImage

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

reordering of the slides is done

Presentasi dengan slide yang baru ditambahkan dengan gambar muncul sebagai berikut -

Membaca Gambar

Anda bisa mendapatkan data dari semua gambar menggunakan getAllPictures() metode dari XMLSlideShowkelas. Program berikut membaca gambar dari presentasi -

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFPictureData;

public class Readingimage {
  
  public static void main(String args[]) throws IOException {
   
      //open an existing presentation 
      File file = new File("addingimage.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //reading all the pictures in the presentation
      for(XSLFPictureData data : ppt.getAllPictures()){
         
         byte[] bytes = data.getData();
         String fileName = data.getFileName();
         int pictureFormat = data.getPictureType();
         System.out.println("picture name: " + fileName);
         System.out.println("picture format: " + pictureFormat);   
      }	    
      
      //saving the changes to a file
      FileOutputStream out = new FileOutputStream(file);
      ppt.write(out);
      out.close();	
   }
}

Simpan kode Java di atas sebagai Readingimage.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac Readingimage.java $java Readingimage

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

picture name: image1.png
picture format: 6

Dalam bab ini Anda akan mempelajari cara membuat hyperlink dalam presentasi.

Membuat Hyperlink

Anda bisa membaca hyperlink dalam presentasi menggunakan createHyperlink() metode dari XSLFTextRunkelas. Ikuti prosedur yang diberikan di bawah ini untuk membuat hyperlink dalam presentasi.

Buat presentasi kosong menggunakan XMLSlideShow kelas seperti yang ditunjukkan di bawah ini -

XMLSlideShow ppt = new XMLSlideShow();

Buat slide kosong dan buat kotak teks dan badan slide menggunakan body dan tata letak konten.

//create an empty presentation
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

//creating a slide with title and content layout
XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
XSLFSlide slide = ppt.createSlide(slidelayout);

//selection of body place holder
XSLFTextShape body = slide.getPlaceholder(1);

//clear the existing text in the slide
body.clearText();

Buat objek run teks dan atur teks ke dalamnya seperti yang ditunjukkan di bawah ini -

XSLFTextRun textRun = body.addNewTextParagraph().addNewTextRun();
textRun.setText("Tutorials point");

Buat hyperlink menggunakan createHyperlink() metode dari XSLFTextRun kelas seperti yang ditunjukkan di bawah ini -

XSLFHyperlink link = textRun.createHyperlink();

Setel alamat tautan ke hyperlink menggunakan setAddress() metode dari XSLFHyperlink kelas seperti yang ditunjukkan di bawah ini -

link.setAddress("http://www.tutorialspoint.com/");

Diberikan di bawah ini adalah program lengkap untuk membuat hyperlink dalam presentasi -

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFHyperlink;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class CreatingHyperlinks {

   public static void main(String args[]) throws IOException {
      
      //create an empty presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the slide master object
      XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
      
      //select a layout from specified list
      XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
     
      //creating a slide with title and content layout
      XSLFSlide slide = ppt.createSlide(slidelayout);
      
      //selection of title place holder
      XSLFTextShape body = slide.getPlaceholder(1);
      
      //clear the existing text in the slid
      body.clearText();
      
      //adding new paragraph
      XSLFTextRun textRun = body.addNewTextParagraph().addNewTextRun();
      
      //setting the text
      textRun.setText("Tutorials point");	
      
      //creating the hyperlink
      XSLFHyperlink link = textRun.createHyperlink();
      
      //setting the link address
      link.setAddress("http://www.tutorialspoint.com/");
      
      //create the file object            
      File file = new File("hyperlink.pptx");
      FileOutputStream out = new FileOutputStream(file);
      
      //save the changes in a file
      ppt.write(out);
      System.out.println("slide cretated successfully");
      out.close();              
   }
}

Simpan kode Java di atas sebagai CreatingHyperlinks.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac CreatingHyperlinks.java $java CreatingHyperlinks

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

slide cretated successfully

Slide yang baru ditambahkan dengan hyperlink di tubuhnya terlihat sebagai berikut -

Anda bisa menghitung jumlah bentuk yang digunakan dalam presentasi menggunakan metode ini getShapeName() dari XSLFShapekelas. Diberikan di bawah ini adalah program untuk membaca bentuk dari presentasi -

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFShape;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class ReadingShapes {
   
   public static void main(String args[]) throws IOException {
      
      //creating a slideshow 
      File file = new File("shapes.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //get slides 
      XSLFSlide[] slide = ppt.getSlides();
      
      //getting the shapes in the presentation
      System.out.println("Shapes in the presentation:");
      for (int i = 0; i < slide.length; i++){
         
         XSLFShape[] sh = slide[i].getShapes();
         for (int j = 0; j < sh.length; j++){
            
            //name of the shape
            System.out.println(sh[j].getShapeName());
         }
      }
      
      FileOutputStream out = new FileOutputStream(file);
      ppt.write(out);
      out.close();	
   }
}

Simpan kode Java di atas sebagai ReadingShapes.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac ReadingShapes.java $java ReadingShapes

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut.

Shapes in the presentation: 
Rectangle 1
Oval 1
Isosceles Triangle 1

Slide yang baru ditambahkan dengan berbagai bentuk muncul sebagai berikut -

Teks dalam presentasi dapat diformat menggunakan metode XSLFTextRunkelas. Untuk itu, Anda harus membuat fileXSLFTextRun objek kelas dengan memilih salah satu tata letak slide seperti yang ditunjukkan di bawah ini -

//create the empty presentation 
XMLSlideShow ppt = new XMLSlideShow();

//getting the slide master object
XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];

//select a layout from specified list
XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);

//creating a slide with title and content layout
XSLFSlide slide = ppt.createSlide(slidelayout);

//selection of title place holder
XSLFTextShape body = slide.getPlaceholder(1);

//clear the existing text in the slide
body.clearText();

//adding new paragraph
XSLFTextParagraph paragraph = body.addNewTextParagraph();

//creating text run object
XSLFTextRun run = paragraph.addNewTextRun();

Anda dapat mengatur ukuran font teks dalam presentasi menggunakan setFontSize().

run.setFontColor(java.awt.Color.red);
run.setFontSize(24);

Cuplikan kode berikut menunjukkan cara menerapkan gaya pemformatan yang berbeda (tebal, miring, garis bawah, coret) ke teks dalam presentasi.

//change the text into bold format
run.setBold(true);

//change the text it to italic format
run.setItalic(true)

// strike through the text
run.setStrikethrough(true);

//underline the text
run.setUnderline(true);

Untuk membuat jeda baris antar paragraf, gunakan addLineBreak() dari XSLFTextParagraph kelas seperti yang ditunjukkan di bawah ini -

paragraph.addLineBreak();

Diberikan di bawah ini adalah program lengkap untuk memformat teks menggunakan semua metode di atas -

import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.SlideLayout;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFSlideLayout;
import org.apache.poi.xslf.usermodel.XSLFSlideMaster;
import org.apache.poi.xslf.usermodel.XSLFTextParagraph;
import org.apache.poi.xslf.usermodel.XSLFTextRun;
import org.apache.poi.xslf.usermodel.XSLFTextShape;

public class TextFormating {
   
   public static void main(String args[]) throws IOException {
      
      //creating an empty presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //getting the slide master object
      XSLFSlideMaster slideMaster = ppt.getSlideMasters()[0];
      
      //select a layout from specified list
      XSLFSlideLayout slidelayout = slideMaster.getLayout(SlideLayout.TITLE_AND_CONTENT);
      
      //creating a slide with title and content layout
      XSLFSlide slide = ppt.createSlide(slidelayout);
      
      //selection of title place holder
      XSLFTextShape body = slide.getPlaceholder(1);
      
      //clear the existing text in the slide
      body.clearText();
      
      //adding new paragraph
      XSLFTextParagraph paragraph = body.addNewTextParagraph();
      
      //formatting line 1
      
      XSLFTextRun run1 = paragraph.addNewTextRun();
      run1.setText("This is a colored line");      
      
      //setting color to the text
      run1.setFontColor(java.awt.Color.red);      
      
      //setting font size to the text
      run1.setFontSize(24);      
      
      //moving to the next line
      paragraph.addLineBreak();
     
      //formatting line 2
      
      XSLFTextRun run2 = paragraph.addNewTextRun();
      run2.setText("This is a bold line");
      run2.setFontColor(java.awt.Color.CYAN);
      
      //making the text bold
      run2.setBold(true);
      paragraph.addLineBreak();
      
      //formatting line 3
      
      XSLFTextRun run3 = paragraph.addNewTextRun();
      run3.setText(" This is a striked line");
      run3.setFontSize(12);
      
      //making the text italic
      run3.setItalic(true);
      
      //strike through the text
      run3.setStrikethrough(true);
      paragraph.addLineBreak();
       
      //formatting line 4
      
      XSLFTextRun run4 = paragraph.addNewTextRun();
      run4.setText(" This an underlined line");
      run4.setUnderline(true);
      
      //underlining the text
      paragraph.addLineBreak();
      
      //creating a file object
      File file = new File(“TextFormat.pptx”);
      FileOutputStream out = new FileOutputStream(file);
       
      //saving the changes to a file
      ppt.write(out);
      out.close();	 
   }
}

Simpan kode di atas sebagai TextFormating.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac TextFormating.java $java TextFormating

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

Formatting completed successfully

Slide dengan teks yang diformat muncul sebagai berikut -

Anda dapat menggabungkan beberapa presentasi menggunakan importContent() metode dari XMLSlideShowkelas. Diberikan di bawah ini adalah program lengkap untuk menggabungkan dua presentasi -

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class MergingMultiplePresentations {
   
      public static void main(String args[]) throws IOException {
      
      //creating empty presentation
      XMLSlideShow ppt = new XMLSlideShow();
      
      //taking the two presentations that are to be merged 
      String file1 = "presentation1.pptx";
      String file2 = "presentation2.pptx";
      String[] inputs = {file1, file2};
      
      for(String arg : inputs){
      
         FileInputStream inputstream = new FileInputStream(arg);
         XMLSlideShow src = new XMLSlideShow(inputstream);
         
         for(XSLFSlide srcSlide : src.getSlides()) {
         
            //merging the contents
            ppt.createSlide().importContent(srcSlide);
         }
      }
     
      String file3 = "combinedpresentation.pptx";
      
      //creating the file object
      FileOutputStream out = new FileOutputStream(file3);
      
      // saving the changes to a file
      ppt.write(out);
      System.out.println("Merging done successfully");
      out.close();
   }
}

Simpan kode di atas sebagai MergingMultiplePresentations.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac MergingMultiplePresentations.java $java MergingMultiplePresentations

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

Merging done successfully

Snapshot berikut menunjukkan presentasi pertama -

Snapshot berikut menunjukkan presentasi kedua -

Diberikan di bawah ini adalah output dari program setelah menggabungkan dua slide. Di sini Anda dapat melihat konten dari slide sebelumnya yang digabungkan menjadi satu.

Anda dapat mengonversi presentasi menjadi file gambar. Program berikut menunjukkan bagaimana melakukannya.

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;

public class PptToImage {
   
   public static void main(String args[]) throws IOException {
      
      //creating an empty presentation
      File file=new File("pptToImage.pptx");
      XMLSlideShow ppt = new XMLSlideShow(new FileInputStream(file));
      
      //getting the dimensions and size of the slide 
      Dimension pgsize = ppt.getPageSize();
      XSLFSlide[] slide = ppt.getSlides();
      
      BufferedImage img = null;
      
      for (int i = 0; i < slide.length; i++) {
         img = new BufferedImage(pgsize.width, pgsize.height,BufferedImage.TYPE_INT_RGB);
         Graphics2D graphics = img.createGraphics();

         //clear the drawing area
         graphics.setPaint(Color.white);
         graphics.fill(new Rectangle2D.Float(0, 0, pgsize.width, pgsize.height));

         //render
         slide[i].draw(graphics);
         
      }
      
      //creating an image file as output
      FileOutputStream out = new FileOutputStream("ppt_image.png");
      javax.imageio.ImageIO.write(img, "png", out);
      ppt.write(out);
      
      System.out.println("Image successfully created");
      out.close();	
   }
}

Simpan kode Java di atas sebagai PpttoPNG.java, lalu kompilasi dan jalankan dari command prompt sebagai berikut -

$javac PpttoPNG.java $java PpttoPNG

Ini akan mengkompilasi dan mengeksekusi untuk menghasilkan output berikut -

Image created successfully

Snapshot berikut menunjukkan presentasi yang diberikan sebagai input -

Diberikan di bawah ini adalah snapshot dari gambar yang dibuat di lokasi yang ditentukan.