יצירת מצגת PowerPoint של MS בג'אווה

1. הקדמה

במאמר זה נראה כיצד נוכל ליצור מצגת באמצעות נקודת עניין של אפאצ'י.

ספרייה זו נותנת לנו אפשרות ליצור מצגות PowerPoint, לקרוא מצגות קיימות ולשנות את תוכנן.

2. תלות Maven

כדי להתחיל, נצטרך להוסיף את התלות הבאות לתוכנו pom.xml:

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

הגרסה האחרונה של שתי הספריות ניתנת להורדה מ Maven Central.

3. נקודת עניין של אפאצ'י

ה ספריית נקודות עניין של אפאצ'י תומכת בשניהם .ppt ו .pptx קבצים, והוא מספק את הטמעת HSLF לפורמט הקובץ Powerpoint '97 (-2007) ואת ה- XSLF לפורמט הקובץ OOXML של PowerPoint 2007.

מכיוון שממשק משותף אינו קיים לשתי היישומים, עלינו לזכור להשתמש ב- XMLSlideShow, XSLFSlide ו XSLFTextShape שיעורים כשעובדים עם החדש יותר .pptx פורמט קובץ.

וכאשר נדרש לעבוד עם המבוגרים .ppt פורמט, השתמש ב- HSLFS SlideShow, HSLFS Slide ו HSLFTextParagraph שיעורים.

נשתמש בחדש .pptx פורמט הקובץ בדוגמאות שלנו, והדבר הראשון שעלינו לעשות הוא ליצור מצגת חדשה, להוסיף לה שקופית (אולי באמצעות פריסה מוגדרת מראש) ולשמור אותה.

לאחר שפעולות אלה ברורות, נוכל להתחיל לעבוד עם תמונות, טקסט וטבלאות.

3.1. צור מצגת חדשה

בואו ניצור תחילה את המצגת החדשה:

XMLSlideShow ppt = XMLSlideShow חדש (); ppt.createSlide ();

3.2. הוסף שקופית חדשה

בעת הוספת שקופית חדשה למצגת, אנו יכולים גם לבחור ליצור אותה מתוך פריסה מוגדרת מראש. כדי להשיג זאת, ראשית עלינו לאחזר את XSLFSlideMaster המכיל פריסות (הראשון הוא מאסטר ברירת המחדל):

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

כעת, אנו יכולים לאחזר את XSLFSlideLayout והשתמש בו בעת יצירת השקופית החדשה:

XSLFSlideLayout layout = defaultMaster.getLayout (SlideLayout.TITLE_AND_CONTENT); שקופית XSLFSlide = ppt.createSlide (פריסה);

בואו נראה כיצד למלא מצייני מיקום בתוך תבנית:

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

זכור שלכל תבנית יש את מצייני המיקום שלה, מקרים של XSLFAutoShape תת-מחלקה, שיכולה להיות שונה במספר מתבנית אחת לאחרת.

בואו נראה כיצד נוכל לאחזר במהירות את כל מצייני המיקום מהשקף

עבור (צורת XSLFShape: slide.getShapes ()) {if (צורה של XSLFAutoShape) {// זה מציין מיקום תבנית}}

3.3. שמירת מצגת

לאחר שיצרנו את המצגת, השלב הבא הוא לשמור אותה:

FileOutputStream out = FileOutputStream חדש ("powerpoint.pptx"); ppt.write (out); out.close ();

4. עבודה עם אובייקטים

כעת, כשראינו כיצד ליצור מצגת חדשה, להוסיף לה שקופית (באמצעות תבנית מוגדרת מראש או לא) ולשמור אותה, נוכל להתחיל להוסיף טקסט, תמונות, קישורים וטבלאות.

נתחיל בטקסט.

4.1. טֶקסט

כשעובדים עם טקסט בתוך מצגת, כמו ב- MS PowerPoint, עלינו ליצור את תיבת הטקסט בתוך שקופית, להוסיף פיסקה ואז להוסיף את הטקסט לפסקה:

XSLFTextBox צורה = slide.createTextBox (); XSLFTextParagraph p = shape.addNewTextParagraph (); XSLFTextRun r = p.addNewTextRun (); r.setText ("באלדונג"); r.setFontColor (Color.green); r.setFontSize (24.);

בעת הגדרת התצורה של XSLFTextRun, ניתן להתאים אישית את הסגנון על ידי בחירת משפחת הגופנים ואם הטקסט צריך להיות מודגש, נטוי או קו תחתון.

4.2. קישורים

בעת הוספת טקסט למצגת, לפעמים יכול להיות שימושי להוסיף היפר-קישורים.

לאחר שיצרנו את XSLFTextRun אובייקט, כעת ניתן להוסיף קישור:

קישור XSLFHyperlink = r.createHyperlink (); link.setAddress ("// www.baeldung.com");

4.3. תמונות

אנו יכולים להוסיף תמונות גם כן:

בתים [] pictureData = IOUtils.toByteArray (FileInputStream חדש ("logo-leaf.png")); XSLFPictureData pd = ppt.addPicture (pictureData, PictureData.PictureType.PNG); XSLFPictureShape picture = slide.createPicture (pd);

למרות זאת, ללא תצורה נכונה, התמונה תוצב בפינה השמאלית העליונה של השקופית. כדי למקם אותו כראוי, עלינו להגדיר את נקודת העיגון שלו:

picture.setAnchor (מלבן חדש (320, 230, 100, 92));

ה XSLFPictureShape מקבל א מַלבֵּן כנקודת עיגון, המאפשרת להגדיר את הקואורדינטות x / y עם שני הפרמטרים הראשונים, ואת רוחב / גובה התמונה עם שני האחרונים.

4.4. רשימות

טקסט, בתוך מצגת, מיוצג לעיתים קרובות בצורה של רשימה, ממוספרת או לא.

בואו נגדיר רשימה של נקודות:

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

באופן דומה, אנו יכולים להגדיר רשימה ממוספרת:

XSLFTextParagraph p2 = content.addNewTextParagraph (); p2.setBulletAutoNumber (AutoNumberingScheme.alphaLcParenRight, 1); p2.setIndentLevel (1); XSLFTextRun r2 = p2.addNewTextRun (); r2.setText ("פריט רשימה ממוספר - 1");

במקרה שאנחנו עובדים עם מספר רשימות, תמיד חשוב להגדיר את indentLevel כדי להשיג כניסה נכונה של פריטים.

4.5. שולחנות

טבלאות הן אובייקט מרכזי נוסף במצגת והן מועילות כאשר אנו רוצים להציג נתונים.

נתחיל ביצירת טבלה:

XSLFTable tbl = slide.createTable (); tbl.setAnchor (מלבן חדש (50, 50, 450, 300));

כעת אנו יכולים להוסיף כותרת:

int numColumn = 3; XSLFTableRow headerRow = tbl.addRow (); headerRow.setHeight (50); עבור (int i = 0; i <numColumn; i ++) {XSLFTableCell th = headerRow.addCell (); XSLFTextParagraph p = th.addNewTextParagraph (); p.setTextAlign (TextParagraph.TextAlign.CENTER); XSLFTextRun r = p.addNewTextRun (); r.setText ("כותרת" + (i + 1)); tbl.setColumnWidth (i, 150); }

לאחר השלמת הכותרת, אנו יכולים להוסיף שורות ותאים לטבלה שלנו כדי להציג נתונים:

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

בעבודה עם שולחנות, חשוב להזכיר שאפשר להתאים אישית את הגבול ואת הרקע של כל תא בודד.

5. שינוי מצגת

לא תמיד כשעובדים על מצגת, עלינו ליצור תצוגה חדשה, אך עלינו לשנות תצוגה שקיימת כבר.

בואו נסתכל על זה שיצרנו בחלק הקודם ואז נוכל להתחיל לשנות אותו:

5.1. קריאת מצגת

קריאת מצגת היא די פשוטה וניתן לעשות זאת באמצעות XMLSlideShow בנאי עמוס שמקבל א FileInputStream:

XMLSlideShow ppt = XMLSlideShow חדש (FileInputStream חדש ("שקופיות.pptx"));

5.2. שינוי סדר השקופיות

כשמוסיפים שקופיות למצגת שלנו, מומלץ לשים אותן בסדר הנכון כדי לקבל זרימה נכונה של שקופיות.

כשזה לא קורה, אפשר לארגן מחדש את סדר השקופיות. בואו נראה איך נוכל להזיז את השקף הרביעי לשני:

שקופיות רשימה = ppt.getSlides (); XSLFSlide slide = slides.get (3); ppt.setSlideOrder (שקופית, 1);

5.3. מחיקת שקופית

אפשר גם למחוק שקופית ממצגת.

בואו נראה כיצד נוכל למחוק את השקופית הרביעית:

ppt.removeSlide (3);

6. מסקנה

הדרכה מהירה זו המחישה כיצד להשתמש ב- נקודת עניין של אפאצ'י ממשק API לקריאה וכתיבה של קובץ PowerPoint מנקודת מבט של Java.

קוד המקור השלם למאמר זה ניתן למצוא, כמו תמיד, ב- GitHub.


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