import java.io.File ؛
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
فئة عامة PowerPoint {
الفراغ العام الثابت الرئيسي (سلسلة args []) يلقي IOException {
// إنشاء عرض شرائح فارغ جديد
XMLSlideShow ppt = XMLSlideShow جديد () ؛
// إنشاء كائن FileOutputStream لحفظ مستند PPT
= ملف جديد ("exemple.pptx") ؛
FileOutputStream fis = جديد FileOutputStream (ملف) ؛
//حفظ الملف
ppt.write(fis);
System.out.println ("تم إنشاء الملف بنجاح") ؛
fis.close ();
}
}
< / pre>يؤدي تجميع هذه التعليمة البرمجية وتنفيذها إلى إنشاء ملف exemple.pptx فارغ في دليل المشروع الخاص بنا يظهر على النحو التالي:< / a>< / div>
تعديل أو تحرير ملف PowerPoint موجود
لفتح عرض تقديمي موجود، قم بإنشاء مثيل لفئة XMLSlideShow وقم بتمرير كائن FileInputStream للملف الذي تريد تعديله كوسيطة في منشئ XMLSlideShow.File file=new File("C://POIPPT//Examples//example1.pptx");يمكنك إضافة شرائح إلى عرض تقديمي باستخدام طريقة createSlide() الخاصة ب < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >XMLSlideShow.
FileInputstream inputstream = جديد FileInputStream (ملف) ؛
XMLSlideShow ppt = XMLSlideShow الجديد (inputstream) ؛XSLFSlide slide1= ppt.createSlide();
< / pre>يفتح البرنامج التالي ويضيف شرائح إلى الملف الذي تم إنشاؤه بالفعل exemple.pptx: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 {
الفراغ العام الثابت الرئيسي (سلسلة ar []) يلقي IOException {
// افتح ملف PowerPoint الموجود
= ملف جديد ("exemple.pptx") ؛
FileInputStream inputstream = جديد FileInputStream (ملف) ؛
XMLSlideShow ppt = XMLSlideShow الجديد (inputstream) ؛
//إضافة شرائح إلى العرض التقديمي
شريحة XSLFSlide1 = ppt.createSlide();
شريحة XSLFSlide2 = ppt.createSlide();
شريحة XSLFSlide3 = ppt.createSlide();
//save changes
FileOutputStream fis = جديد FileOutputStream (ملف) ؛
ppt.write (FIS) ؛
System.out.println ("التعديلات التي أدخلت بنجاح")؛
fis.close ();
}
}التعديلات التي تم إجراؤها بنجاحتم تعديل المستند بثلاث شرائح جديدة:PowerPoint التقديمي على تخطيطات لكل شريحة يمكنك الاختيار من بينها. أولا ، دعنا نجد قائمة بجميع التخطيطات المتاحة.هناك شرائح مختلفة تسمى الشرائح الرئيسية وفي كل شريحة رئيسية ، هناك العديد من تخطيطات الشرائح.- يمكنك الحصول على قائمة الشرائح باستخدام الطريقة < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >getSlideMasters() من الفصل < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >XMLSlideShow.- يمكنك الحصول على قائمة تخطيطات الشرائح من كل شريحة رئيسية عن طريق استدعاء < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >getSlideLayouts() من الفصل < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >XSLFSlideMaster.- يمكنك الحصول على اسم تخطيط من الكائن < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >تخطيط< / سبان> باستخدام الزر < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >getType() من الفصل < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >XSLFSlideLayout.يعرض البرنامج أدناه جميع التخطيطات المتاحة في PPT: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;
العامة فئة SlideLayouts {
الفراغ العام الثابت الرئيسي (سلسلة args []) يلقي IOException {
XMLSlideShow ppt = XMLSlideShow الجديد ();
System.out.println ("التخطيطات المتاحة")؛
// احصل على قائمة بجميع الشرائح الرئيسية
ل (XSLFSlideMaster master: ppt.getSlideMasters ()){
//احصل على قائمة بجميع تخطيط الشرائح في كل شريحة رئيسية
ل (تخطيط XSLFSlideLayout: master.getSlideLayouts ()){
// يحصل على تخطيط الاسم
System.out.println (layout.getType ()) ؛
}
}
}
}
< / pre>< / div>الإخراج:
< pre class = "prettyprint lang-java" > التخطيطات المتاحة
BLANK
TITLE_ONLY
SECTION_HEADER
PIC_TX
TITLE_AND_CONTENT
TITLE
VERT_TX< br / >VERT_TITLE_AND_TX
TWO_TX_TWO_OBJ
TWO_OBJ
OBJ_TX
< / pre>يوضح الشكل أدناه بعض التخطيطات المتوفرة في MS Office 2007:< / a>< / div>
< / div>إنشاء شريحة تستخدم تخطيط العنوان
دعنا ننشئ شريحة تستخدم التخطيط العنوان:1- إنشاء عرض تقديمي فارغ عن طريق إنشاء مثيل للفصل < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >XMLSlideShow:XMLSlideShow ppt=new XMLSlideShow();
< / pre>< / div>2- احصل على قائمة الشرائح الرئيسية باستخدام الطريقة < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >getSlideMasters () < / span >. ثم حدد الشريحة الرئيسية المطلوبة مع فهرسها: < / div>
< / div>XSLFSlideMaster slideMaster = ppt.getSlideMasters () .get (0);
< / pre>< / div>هنا نحصل على الشريحة الرئيسية الافتراضية الموجودة في الموضع 0 من الصفيف.< / div>
< / div>3- اختر التخطيط باستخدام الطريقة < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >getLayout() من فئة XSLFSlideMaster. تقبل هذه الطريقة معلمة وهي متغير ثابت يمثل التخطيط المطلوب. هناك العديد من المتغيرات في هذه الفئة ، ويمثل كل منها تخطيط شريحة.توضح التعليمة البرمجية التالية كيفية إنشاء تخطيط العنوان: < / div>
< pre class = "prettyprint lang-java" >XSLFSlideLayout titleLayout = slideMaster.getLayout (SlideLayout.TITLE) ؛
< / pre>< / div>4- قم بإنشاء شريحة جديدة عن طريق تمرير كائن تخطيط الشريحة كمعلمة.XSLFSlide slide = ppt.createSlide(titleLayout);
5- حدد عنصرا نائبا باستخدام طريقة getPlaceholder() لفئة XSLFSlide. تقبل هذه الطريقة معلمة عدد صحيح. يؤدي تمرير القيمة 0 إلى إعطاء كائن XSLFTextSlide المستخدم للوصول إلى منطقة نص العنوان في الشريحة. قم بتغيير العنوان باستخدام setText () :
< pre class = "prettyprint lang-java" > XSLFTextShape title = slide.getPlaceholder (0) ؛
title.setText ("JavaCoder") ؛
< / pre>< / div>
< / div>هنا البرنامج الكامل: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 {
الفراغ العام الثابت الرئيسي (سلسلة args []) يلقي IOException {
XMLSlideShow ppt = XMLSlideShow الجديد () ؛
//retrieve slidemaster
XSLFSlideMaster slideMaster = ppt.getSlideMasters().get(0);
// احصل على slidelayout الذي تريده < br / > XSLFSlideLayout titleLayout = slideMaster.getLayout (SlideLayout.TITLE) ؛
//إنشاء شريحة باستخدام شريحة slidelayout
XSLFSlide المحددة = ppt.createSlide(titleLayout);
//modify العنصر النائب 0 وهو العنوان
عنوان XSLFTextShape = slide.getPlaceholder (0) ؛
//edit title
title.setText ("JavaCoder") ؛
//إنشاء ملف pptx
= ملف جديد ("Exemple.pptx") ؛
FileOutputStream fos = جديد FileOutputStream (ملف) ؛
// حفظ التغييرات
ppt.write (fos) ؛
System.out.println ("تم إنشاء الشريحة بنجاح") ؛
fos.close ();
}
}
< / pre> الإخراج:تم إنشاء الشريحة بنجاح
< / pre>دعنا ننشئ شريحة باستخدام العنوان والتخطيط باتباع الخطوات التالية:1- إنشاء عرض تقديمي فارغ عن طريق إنشاء مثيل للفئة < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >XMLSlideShow.2- احصل على قائمة بجميع الشرائح باستخدام الطريقة < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >getSlideMasters()3- احصل على التخطيط المطلوب باستخدام الطريقة < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >getLayout() من الفصل < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >XSLFSlideMaster< / span>: < / div>4- قم بإنشاء شريحة جديدة عن طريق تمرير كائن التخطيط كمعاملة: < / div>
< / div>XSLFSlide slide = ppt.createSlide (SlideLayout.TITLE_AND_CONTENT) ؛
< / pre>< / div>5- حدد عنصرا نائبا باستخدام getPlaceholder () :
< pre class = "prettyprint lang-java" > XSLFTextShape title = slide.getPlaceholder (1) ؛
title1.setText ("مقدمة")؛
< / pre>< / div>6 - امسح نص الشريحة عن طريق استدعاء طريقة clearText () لفئة XSLFTextShape.
< pre class = "prettyprint lang-java" >body.clearText () ؛
< / pre>7- أضف فقرة جديدة باستخدام طريقة addNewTextParagraph (). يمكنك الآن إضافة نص باستخدام طريقة addNewTextRun () ، ثم setText () .
< pre class = "prettyprint lang-java" >body.addNewTextParagraph () .addNewTextRun () .setText ("هذا هو نص الشريحة الأول الخاص بي") ؛
< / pre> هنا هو الرمز الكامل:
< pre class = "prettyprint lang-java" >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 {
الفراغ العام الثابت الرئيسي (سلسلة args []) يلقي IOException {
XMLSlideShow ppt = XMLSlideShow الجديد () ؛
//retrieve slidemaster
XSLFSlideMaster slideMaster = ppt.getSlideMasters ().get (0) ؛
// احصل على slidelayout الذي تريده < br / > XSLFSlideLayout titleLayout = slideMaster.getLayout (SlideLayout.TITLE) ؛
//إنشاء شريحة باستخدام شريحة slidelayout
XSLFSlide المحددة = ppt.createSlide(titleLayout);
//modify العنصر النائب 0 وهو العنوان
عنوان XSLFTextShape = slide.getPlaceholder (0) ؛
//edit title
title.setText ("مقدمة");
// حدد العنصر النائب 1 وهو النص
جسم XSLFTextShape = slide.getPlaceholder (1) ؛
//delete old content
body.clearText ();
//add paragraph
body.addNewTextParagraph().addNewTextRun().setText("شريحتي الأولى");
//إنشاء ملف pptx
= ملف جديد ("Exemple.pptx") ؛
FileOutputStream fos = جديد FileOutputStream (ملف) ؛
// حفظ التغييرات
ppt.write (fos) ؛
System.out.println ("تم إنشاء الشريحة بنجاح") ؛
fos.close ();
}
}
< / pre> الإخراج:تم إنشاء الشريحة بنجاح
< / pre>< / a>< / div>
< / div >< div style = "محاذاة النص: يسار ؛" >
< / div>< / div>الحصول على حجم الشريحة وتغييره
يتم الحصول على حجم الشريحة باستخدام طريقة getPageSize() الخاصة ب XMLSlideShow.java.awt.Dimension pgsize = ppt.getPageSize();لتغيير حجم الشريحة في جافا، استخدم طريقة setPageSize() الخاصة ب XMLSlideShow.ppt.setPageSize(new java.awt.Dimension(1024, 768));
< / pre>< / div>هنا البرنامج الكامل:import java.awt.Dimension ؛
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
الطبقة العامة ChangingSlide {
الفراغ العام الثابت الرئيسي (سلسلة args []) يلقي IOException {
ملف ملف = ملف جديد ("Exemple.pptx") ؛
XMLSlideShow ppt = XMLSlideShow الجديد ();
// احصل على البعد الحالي
البعد pptsize = ppt.getPageSize () ؛
System.out.println ("بعد الشريحة الحالي:");
System.out.println ("العرض:" + pptsize.width) ؛
System.out.println ("الارتفاع:" + pptsize.height) ؛
// تغيير البعد
ppt.setPageSize (java.awt.Dimension الجديد (1024,400)) ؛
FileOutputStream out = FileOutputStream الجديد (ملف) ؛
ppt.write (out) ؛
System.out.println ("تم تغيير بعد الشريحة") ؛
out.close ();
}
}
< / pre> الإخراج:
< pre class = "prettyprint lang-java" > حجم الشريحة الحالي:
width: 720
الارتفاع: 540
تم تغيير بعد الشريحة
< / pre>تظهر الشريحة هكذا بعد تغيير الحجم:يمكنك تغيير الترتيب باستخدام طريقة setSlideOrder() . استرجع جميع الشرائح باستخدام طريقة getSlides () ثم حدد من جدول الشرائح ، وقم بتغيير الترتيب باستخدام طريقة setSlideOrder () : < / div>
< pre class = "prettyprint lang-java" > / / حدد الشريحة الثالثة
XSLFSlide slide = slides.get (2);
/ / ضعه أولا
ppt.setSlideOrder (الشريحة ، 1) ؛يعرض الكود التالي مثالا: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;
فئة عامة ReorderSlide {
الفراغ العام الثابت الرئيسي (سلسلة args []) يلقي IOException {
ملف الملف = ملف جديد ("exemple.pptx") ؛
XMLSlideShow ppt = XMLSlideShow الجديد (ملف جديد FileInputStream (ملف)) ؛
//retrieve slide list
java.util.Listالشرائح = ppt.getSlides ();
// حدد الشريحة 3
XSLFSlide selectesdslide = slides.get (2) ؛
// ضعه في الموضع الأول
ppt.setSlideOrder (selectesdslide، 0);
FileOutputStream fos = جديد FileOutputStream (ملف) ؛
ppt.write (fos);
fos.close ();
}
}
< / xslfslide>< / pre> العرض قبل وبعد التبديل بين الشريحة 1 و 3: