Vytvorenie prezentácie MS PowerPoint v Jave

1. Úvod

V tomto článku uvidíme, ako môžeme vytvoriť prezentáciu pomocou Apache POI.

Táto knižnica nám dáva možnosť vytvárať prezentácie v PowerPointe, čítať existujúce a upravovať ich obsah.

2. Maven závislosti

Na začiatok budeme musieť do našej pridať nasledujúce závislosti pom.xml:

 org.apache.poi poi 3,17 org.apache.poi poi-ooxml 3,17 

Najnovšiu verziu oboch knižníc je možné stiahnuť z Maven Central.

3. Apache POI

The Knižnica Apache POI podporuje oboje .ppt a .pptx súborya poskytuje implementáciu HSLF pre formát súboru Powerpoint '97 (-2007) a XSLF pre formát súboru PowerPoint 2007 OOXML.

Pretože spoločné rozhranie neexistuje pre obe implementácie, musíme pamätať na použitie XMLSlideShow, Šmykľavka XSLFS a XSLFTextShape triedy pri práci s novšou .pptx formát súboru.

A keď je potrebné pracovať so staršími .ppt formáte, použite HSLFSlideShow, HSLFSlide a HSLFTextParagraph triedy.

Použijeme nové .pptx formát súboru v našich príkladoch a prvá vec, ktorú musíme urobiť, je vytvoriť novú prezentáciu, pridať do nej snímku (možno pomocou preddefinovaného rozloženia) a uložiť ju.

Keď budú tieto operácie jasné, môžeme začať pracovať s obrázkami, textom a tabuľkami.

3.1. Vytvorte novú prezentáciu

Najprv vytvoríme novú prezentáciu:

XMLSlideShow ppt = nový XMLSlideShow (); ppt.createSlide ();

3.2. Pridajte novú snímku

Pri pridávaní novej snímky do prezentácie sa tiež môžeme rozhodnúť vytvoriť ju z preddefinovaného rozloženia. Aby sme to dosiahli, musíme najskôr získať XSLFSlideMaster ktorý obsahuje rozloženia (prvý je predvolený hlavný):

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

Teraz môžeme získať XSLFSlideLayout a použite ju pri vytváraní novej snímky:

XSLFSlideLayout layout = defaultMaster.getLayout (SlideLayout.TITLE_AND_CONTENT); XSLFSlide slide = ppt.createSlide (rozloženie);

Pozrime sa, ako vyplniť zástupné symboly v šablóne:

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

Pamätajte, že každá šablóna má svoje zástupné symboly, inštancie XSLFAutoShape podtriedy, ktorých počet sa môže líšiť od jednej šablóny k druhej.

Pozrime sa, ako môžeme rýchlo načítať všetky zástupné symboly zo snímky:

for (XSLFShape shape: slide.getShapes ()) {if (shape instanceof XSLFAutoShape) {// this is a template placeholder}}

3.3. Uloženie prezentácie

Po vytvorení prezentácie je ďalším krokom jej uloženie:

FileOutputStream out = nový FileOutputStream ("powerpoint.pptx"); ppt.write (out); out.close ();

4. Práca s objektmi

Teraz, keď sme videli, ako vytvoriť novú prezentáciu, pridať do nej snímku (či už s preddefinovanou šablónou alebo nie) a uložiť ju, môžeme začať pridávať text, obrázky, odkazy a tabuľky.

Začnime textom.

4.1. Text

Pri práci s textom v rámci prezentácie, ako je to v programe MS PowerPoint, musíme vytvoriť textové pole vo vnútri snímky, pridať odsek a potom pridať text do odseku:

XSLFTextBox tvar = slide.createTextBox (); XSLFTextParagraph p = shape.addNewTextParagraph (); XSLFTextRun r = p.addNewTextRun (); r.setText ("Baeldung"); r.setFontColor (farebná zelená); r.setFontSize (24.);

Pri konfigurácii XSLFTextRun, je možné prispôsobiť jeho štýl výberom rodiny fontov a toho, či má byť text zvýraznený tučne, kurzívou alebo podčiarknutý.

4.2. Hypertextové odkazy

Pri pridávaní textu do prezentácie môže byť niekedy užitočné pridať hypertextové odkazy.

Len čo sme vytvorili XSLFTextRun objekt, teraz môžeme pridať odkaz:

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

4.3. snímky

Môžeme pridať aj obrázky:

byte [] pictureData = IOUtils.toByteArray (nový FileInputStream ("logo-leaf.png")); XSLFPictureData pd = ppt.addPicture (pictureData, PictureData.PictureType.PNG); XSLFPictureShape picture = slide.createPicture (pd);

Avšak bez správnej konfigurácie sa obrázok umiestni do ľavého horného rohu snímky. Aby sme ho správne umiestnili, musíme nakonfigurovať jeho kotviaci bod:

picture.setAnchor (nový obdĺžnik (320, 230, 100, 92));

The XSLFPictureShape prijíma a Obdĺžnik ako kotviaci bod, ktorý nám umožňuje konfigurovať súradnice x / y s prvými dvoma parametrami a šírku / výšku obrázka s poslednými dvoma.

4.4. Zoznamy

Text v prezentácii je často predstavovaný vo forme zoznamu, očíslovaného alebo nie.

Poďme teraz definovať zoznam odrážok:

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

Podobne môžeme definovať očíslovaný zoznam:

XSLFTextParagraph p2 = content.addNewTextParagraph (); p2.setBulletAutoNumber (AutoNumberingScheme.alphaLcParenRight, 1); p2.setIndentLevel (1); XSLFTextRun r2 = p2.addNewTextRun (); r2.setText ("Položka číslovaného zoznamu - 1");

V prípade, že pracujeme s viacerými zoznamami, je vždy dôležité definovať indentLevel aby sa dosiahlo správne odsadenie položiek.

4.5. Tabuľky

Tabuľky sú ďalším kľúčovým objektom v prezentácii a sú užitočné, keď chceme zobraziť údaje.

Začnime vytvorením tabuľky:

XSLFTable tbl = slide.createTable (); tbl.setAnchor (nový obdĺžnik (50, 50, 450, 300));

Teraz môžeme pridať hlavičku:

int numColumns = 3; XSLFTableRow headerRow = tbl.addRow (); headerRow.setHeight (50); pre (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 ("Hlavička" + (i + 1)); tbl.setColumnWidth (i, 150); }

Po dokončení hlavičky môžeme do našej tabuľky pridať riadky a bunky, aby sa zobrazili údaje:

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

Pri práci s tabuľkami je dôležité pripomenúť, že je možné prispôsobiť orámovanie a pozadie každej bunky.

5. Zmena prezentácie

Nie vždy, keď pracujete na prezentácii, musíme vytvoriť novú, ale musíme zmeniť už existujúcu.

Pozrime sa na ten, ktorý sme vytvorili v predchádzajúcej časti, a potom ho môžeme začať meniť:

5.1. Čítanie prezentácie

Čítanie prezentácie je veľmi jednoduché a dá sa vykonať pomocou XMLSlideShow preťažený konštruktor, ktorý akceptuje a FileInputStream:

XMLSlideShow ppt = nový XMLSlideShow (nový FileInputStream ("slideshow.pptx"));

5.2. Zmena poradia snímok

Pri pridávaní snímok do našej prezentácie je dobré ich umiestniť do správneho poradia, aby ste dosiahli správny priebeh snímok.

Ak sa tak nestane, je možné znova usporiadať poradie snímok. Pozrime sa, ako môžeme štvrtú snímku posunúť tak, aby bola druhá:

Zoznam snímok = ppt.getSlides (); XSLFSlide slide = slides.get (3); ppt.setSlideOrder (snímka, 1);

5.3. Odstránenie snímky

Je tiež možné odstrániť prezentáciu z prezentácie.

Pozrime sa, ako môžeme odstrániť štvrtú snímku:

ppt.removeSlide (3);

6. Záver

Tento rýchly návod ilustroval, ako používať Apache POI API na čítanie a zápis súboru PowerPoint z pohľadu Java.

Kompletný zdrojový kód tohto článku nájdete, ako vždy, na serveri GitHub.


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