MS PowerPoint prezentáció készítése Java-ban

1. Bemutatkozás

Ebben a cikkben megnézzük, hogyan készíthetünk prezentációt az Apache POI használatával.

Ez a könyvtár lehetőséget nyújt számunkra PowerPoint prezentációk készítésére, a meglévők elolvasására és azok tartalmának megváltoztatására.

2. Maven-függőségek

A kezdéshez hozzá kell adnunk a következő függőségeket a sajátunkhoz pom.xml:

 org.apache.poi poi 3.17 org.apache.poi poi-ooxml 3.17 

Mindkét könyvtár legújabb verziója letölthető a Maven Central oldalról.

3. Apache POI

A Az Apache POI könyvtár mindkettőt támogatja .ppt és .pptx fájlokat, és biztosítja a HSLF megvalósítást a Powerpoint '97 (-2007) és az XSLF a PowerPoint 2007 OOXML fájlformátumhoz.

Mivel nem létezik közös interfész mindkét megvalósításhoz, emlékeznünk kell a XMLSlideShow, XSLFSlide és XSLFTextShape osztályok, amikor az újabbal dolgoznak .pptx fájlformátum.

És amikor az idősebbekkel együtt kell dolgozni .ppt formátumban használja a HSLFSlideShow, HSLFSlide és HSLFTextParagraph osztályok.

Használjuk az újat .pptx fájlformátum a példáinkban, és az első dolog, amit meg kell tennünk, létrehozni egy új prezentációt, hozzáadni hozzá egy diát (esetleg előre definiált elrendezést használva) és menteni.

Miután ezek a műveletek egyértelműek, akkor elkezdhetjük a munkát képekkel, szöveggel és táblázatokkal.

3.1. Hozzon létre egy új prezentációt

Először hozzuk létre az új prezentációt:

XMLSlideShow ppt = új XMLSlideShow (); ppt.createSlide ();

3.2. Új dia hozzáadása

Ha egy új diát hozzáad egy prezentációhoz, akkor azt is választhatjuk, hogy előre meghatározott elrendezésből hozzuk létre. Ennek eléréséhez először le kell töltenünk a XSLFSlideMaster amely elrendezéseket tartalmaz (az első az alapértelmezett mester):

XSLFSlideMaster defaultMaster = ppt.getSlideMasters (). Get (0);

Most lekérhetjük a XSLFSlideLayout és használja az új dia létrehozásakor:

XSLFSlideLayout layout = defaultMaster.getLayout (SlideLayout.TITLE_AND_CONTENT); XSLFSlide slide = ppt.createSlide (elrendezés);

Nézzük meg, hogyan kell kitölteni a helyőrzőket egy sablon belsejében:

XSLFTextShape titleShape = slide.getPlaceholder (0); XSLFTextShape contentShape = slide.getPlaceholder (1);

Ne feledje, hogy minden sablonnak vannak helyőrzői, a XSLFAutoShape alosztály, amely sablononként szám szerint eltérhet.

Nézzük meg, hogyan tudjuk gyorsan lekérni az összes helyőrzőt egy diáról:

for (XSLFShape shape: slide.getShapes ()) {if (alakzat XSLFAutoShape alakja) {// ez egy sablon helyőrző}}

3.3. Prezentáció mentése

Miután elkészítettük a diavetítést, a következő lépés a mentés:

FileOutputStream out = új FileOutputStream ("powerpoint.pptx"); ppt.write (out); out.close ();

4. Munka tárgyakkal

Most, hogy láttuk, hogyan lehet új prezentációt létrehozni, hozzáadni egy diát (előre definiált sablon használatával vagy nem), és elmenteni, elkezdhetjük a szöveg, képek, linkek és táblázatok hozzáadását.

Kezdjük a szöveggel.

4.1. Szöveg

Amikor a bemutatón belüli szöveggel dolgozunk, hasonlóan az MS PowerPoint-hoz, létre kell hoznunk a szövegdobozt egy dián belül, hozzáadunk egy bekezdést, majd hozzáadjuk a szöveget a bekezdéshez:

XSLFTextBox shape = slide.createTextBox (); XSLFTextParagraph p = shape.addNewTextParagraph (); XSLFTextRun r = p.addNewTextRun (); r.setText ("Baeldung"); r.setFontColor (Color.green); r.setFontSize (24.);

A. Konfigurálásakor XSLFTextRun, a stílust testreszabhatja a betűtípuscsalád kiválasztásával, és ha a szöveg félkövér, dőlt vagy aláhúzott legyen.

4.2. Hiperhivatkozások

Szöveg hozzáadásakor egy prezentációhoz néha hasznos lehet hiperhivatkozások hozzáadása.

Miután létrehoztuk a XSLFTextRun objektumot, most hozzáadhatunk egy linket:

XSLFHyperlink link = r.createHyperlink (); link.setAddress ("// www.baeldung.com");

4.3. Képek

Képeket is felvehetünk:

bájt [] pictureData = IOUtils.toByteArray (új FileInputStream ("logo-leaf.png")); XSLFPictureData pd = ppt.addPicture (pictureData, PictureData.PictureType.PNG); XSLFPictureShape picture = slide.createPicture (pd);

Azonban, Megfelelő konfiguráció nélkül a kép a dia bal felső sarkába kerül. A megfelelő elhelyezéshez konfigurálnunk kell a rögzítési pontot:

picture.setAnchor (új téglalap (320, 230, 100, 92));

A XSLFPictureShape elfogadja a Téglalap rögzítési pontként, amely lehetővé teszi az x / y koordináták konfigurálását az első két paraméterrel, a kép szélességét / magasságát pedig az utolsó kettővel.

4.4. Listák

A prezentáció belsejében lévő szöveget gyakran lista formájában ábrázolják, számozva vagy sem.

Most adjuk meg a felsorolás pontok listáját:

XSLFTextShape content = slide.getPlaceholder (1); XSLFTextParagraph p1 = content.addNewTextParagraph (); p1.setIndentLevel (0); p1.setBullet (true); r1 = p1.addNewTextRun (); r1.setText ("Bullet");

Hasonlóképpen meghatározhatunk számozott listát is:

XSLFTextParagraph p2 = content.addNewTextParagraph (); p2.setBulletAutoNumber (AutoNumberingScheme.alphaLcParenRight, 1); p2.setIndentLevel (1); XSLFTextRun r2 = p2.addNewTextRun (); r2.setText ("Számozott listaelem - 1");

Ha több listával dolgozunk, mindig fontos meghatározni a indentLevel az elemek megfelelő behúzásának elérése érdekében.

4.5. Táblázatok

A táblázatok egy másik kulcsobjektum egy prezentációban, és hasznosak, ha adatokat akarunk megjeleníteni.

Kezdjük egy táblázat létrehozásával:

XSLFTable tbl = slide.createTable (); tbl.setAnchor (új téglalap (50, 50, 450, 300));

Most hozzáadhatunk egy fejlécet:

int numColumns = 3; XSLFTableRow headerRow = tbl.addRow (); headerRow.setHeight (50); for (int i = 0; i <numColumns; i ++) {XSLFTableCell th = headerRow.addCell (); XSLFTextParagraph p = th.addNewTextParagraph (); p.setTextAlign (TextParagraph.TextAlign.CENTER); XSLFTextRun r = p.addNewTextRun (); r.setText ("Fejléc" + (i + 1)); tbl.setColumnWidth (i, 150); }

Miután a fejléc elkészült, sorokat és cellákat adhatunk a táblázatunkhoz az adatok megjelenítéséhez:

for (int rownum = 1; rownum <numRows; rownum ++) {XSLFTableRow tr = tbl.addRow (); tr.setHeight (50); for (int i = 0; i <numColumns; i ++) {XSLFTableCell cella = tr.addCell (); XSLFTextParagraph p = cell.addNewTextParagraph (); XSLFTextRun r = p.addNewTextRun (); r.setText ("Cell" + (i * rownum + 1)); }}

A táblázatokkal való foglalkozás során fontos emlékeztetni arra, hogy testre szabható az egyes cellák szegélye és háttere.

5. A prezentáció módosítása

Nem mindig, amikor diavetítésen dolgozunk, újat kell létrehoznunk, de módosítanunk kell egy már meglévőt.

Vessünk egy pillantást az előző szakaszban létrehozottra, majd elkezdhetjük módosítani:

5.1. Prezentáció olvasása

A prezentáció elolvasása elég egyszerű, és a XMLSlideShow túlterhelt kivitelező, amely elfogadja a FileInputStream:

XMLSlideShow ppt = új XMLSlideShow (új FileInputStream ("slideshow.pptx"));

5.2. Diasorrend megváltoztatása

Diák hozzáadásakor a bemutatónkhoz célszerű a megfelelő sorrendbe állítani őket, hogy megfelelő legyen a diák.

Ha ez nem történik meg, lehetséges a diák sorrendjének újrarendezése. Lássuk, hogyan mozgathatjuk a negyedik diát a másodiká:

Diák listája = ppt.getSlides (); XSLFSlide slide = slide.get (3); ppt.setSlideOrder (dia, 1);

5.3. Diák törlése

Dia is törölhető egy prezentációból.

Nézzük meg, hogyan törölhetjük a 4. diát:

ppt.removeSlide (3);

6. Következtetés

Ez a gyors bemutató bemutatta a Apache POI API PowerPoint fájlok Java perspektívából történő olvasásához és írásához.

A cikk teljes forráskódja, mint mindig, a GitHubon található.


$config[zx-auto] not found$config[zx-overlay] not found