اباتشي POI PPT - باور بوينت إلى جافا
غالبا ما يحدث أن يحتاج أحد التطبيقات إلى إنشاء تقارير بتنسيق Microsoft Office ppt أو pptx ، تماما كما يحتاج إلى تحرير ملفات Power Point وقراءتها. يجب على مبرمج Java الذي يريد إنتاج ملفات MS Office استخدام مكتبة Java ومن بينها مكتبة Apache المعروفة بكفاءتها.
Apache POI هي واجهة برمجة تطبيقات تسمح لك بإنشاء ملفات MS Office وتعديلها وعرضها. تم تطوير هذه المكتبة مفتوحة المصدر وتوزيعها بواسطة Apache Software Foundation.
هذا البرنامج التعليمي مخصص لأولئك الذين يحتاجون إلى قراءة ملفات Power Point وإنشائها وتحريرها باستخدام Java. يشرح الميزات الأساسية لمكتبة Apache POI وميزاتها الأساسية للقدرة على إجراء العمليات على ملفات PowerPoint.
قم بتنزيل وتثبيت Apache POI PPT< / h2>
Apache POI هي واجهة برمجة تطبيقات تسمح لك بإنشاء ملفات MS Office وتعديلها وعرضها. تم تطوير هذه المكتبة مفتوحة المصدر وتوزيعها بواسطة Apache Software Foundation.
هذا البرنامج التعليمي مخصص لأولئك الذين يحتاجون إلى قراءة ملفات Power Point وإنشائها وتحريرها باستخدام Java. يشرح الميزات الأساسية لمكتبة Apache POI وميزاتها الأساسية للقدرة على إجراء العمليات على ملفات PowerPoint.
قم بتنزيل وتثبيت Apache POI PPT< / h2> قم بتنزيل أحدث إصدار من Apache POI من الموقع الرسمي (Download Apache POI PPT) وقم بفك ضغط المحتويات إلى مجلد المشروع الخاص بك بحيث يمكنك بعد ذلك ربط المكتبات المطلوبة بالتطبيق. سنحتاج إلى ملفات .jar التالية: < / div>- poi.jar
- poi-oxml.jar
- poi-oxml-schema.jar
- log4j.jar
- xmlbeans.jar
الفئات والأساليب
يحتوي Apache POI على فئات وطرق للعمل مع ملفات Excel و Word و Power Point. لقد أوضحنا بالفعل هذه الفئات للتفوق والكلمة في المقالات السابقة. سنعرض لك الفئات المتعلقة ب Power Point: < / div>- XMLSlideShow: لإنشاء عرض تقديمي وإدارته، لديك فئة XMLSlideShow هذه في org.apache.poi.xslf.usermoder.
- XSLFSlide: إنشاء شريحة وإدارتها في عرض تقديمي.
- XSLFSlideMaster: لعرض تقديمي يحتوي على تخطيطات شرائح مختلفة. تتيح فئة XSLFSlideMaster الوصول إلى هذه التخطيطات.
- XSLFSlideLayout: يسمح لك بإدارة تخطيطات الشريحة.
- XSLFTextParagraph: يمكنك كتابة نص في الشريحة باستخدام فئة XSLFTextParagraph.
- XSLFTextRun: تعالج هذه الفئة تنسيق النص (الارتباطات التشعبية، الألوان والخطوط وما إلى ذلك).
- XSLFTextShape: تعالج هذه الفئة الأشكال التي تحتوي على text.
- XSLFHyperlink: يسمح لك بإنشاء ارتباطات تشعبية في عرض تقديمي.
إنشاء عرض تقديمي فارغ في PowerPoint
الآن ، دعنا نرى كيفية إنشاء عرض تقديمي باستخدام Java. لإنشاء عرض تقديمي فارغ ، تحتاج إلى إنشاء مثيل لفئة XMLSlideShow: < / div>
< pre class = "prettyprint lang-java" >XMLSlideShow ppt = XMLSlideShow الجديد ();
< / pre>< / div> احفظ التغييرات على مستند PPT باستخدام FileOutputStream:
< pre class = "prettyprint lang-java" >ملف الملف = ملف جديد ("C://POIPPT//Examples//example1.pptx") ؛
FileOutputStream out = FileOutputStream جديد (ملف) ؛
ppt.write(out);
< / pre> الكود أدناه هو البرنامج الكامل لإنشاء مستند PowerPoint فارغ:
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");
FileInputstream inputstream = جديد FileInputStream (ملف) ؛
XMLSlideShow ppt = XMLSlideShow الجديد (inputstream) ؛
يمكنك إضافة شرائح إلى عرض تقديمي باستخدام طريقة createSlide() الخاصة ب < span style = "عائلة الخط:" ساعي جديد" , " ساعي" ، حافلة صغيرة؛" >XMLSlideShow.
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:
- poi.jar
- poi-oxml.jar
- poi-oxml-schema.jar
- log4j.jar
- xmlbeans.jar
الفئات والأساليب
يحتوي Apache POI على فئات وطرق للعمل مع ملفات Excel و Word و Power Point. لقد أوضحنا بالفعل هذه الفئات للتفوق والكلمة في المقالات السابقة. سنعرض لك الفئات المتعلقة ب Power Point: < / div>
- XMLSlideShow: لإنشاء عرض تقديمي وإدارته، لديك فئة XMLSlideShow هذه في org.apache.poi.xslf.usermoder.
- XSLFSlide: إنشاء شريحة وإدارتها في عرض تقديمي.
- XSLFSlideMaster: لعرض تقديمي يحتوي على تخطيطات شرائح مختلفة. تتيح فئة XSLFSlideMaster الوصول إلى هذه التخطيطات.
- XSLFSlideLayout: يسمح لك بإدارة تخطيطات الشريحة.
- XSLFTextParagraph: يمكنك كتابة نص في الشريحة باستخدام فئة XSLFTextParagraph.
- XSLFTextRun: تعالج هذه الفئة تنسيق النص (الارتباطات التشعبية، الألوان والخطوط وما إلى ذلك).
- XSLFTextShape: تعالج هذه الفئة الأشكال التي تحتوي على text.
- XSLFHyperlink: يسمح لك بإنشاء ارتباطات تشعبية في عرض تقديمي.
إنشاء عرض تقديمي فارغ في PowerPoint
الآن ، دعنا نرى كيفية إنشاء عرض تقديمي باستخدام Java. لإنشاء عرض تقديمي فارغ ، تحتاج إلى إنشاء مثيل لفئة XMLSlideShow: < / div>
< pre class = "prettyprint lang-java" >XMLSlideShow ppt = XMLSlideShow الجديد ();
< / pre>< / div>
< pre class = "prettyprint lang-java" >XMLSlideShow ppt = XMLSlideShow الجديد ();
< / pre>< / div>
احفظ التغييرات على مستند PPT باستخدام FileOutputStream:
< pre class = "prettyprint lang-java" >ملف الملف = ملف جديد ("C://POIPPT//Examples//example1.pptx") ؛
FileOutputStream out = FileOutputStream جديد (ملف) ؛
ppt.write(out);
< / pre> الكود أدناه هو البرنامج الكامل لإنشاء مستند PowerPoint فارغ:
< pre class = "prettyprint lang-java" >ملف الملف = ملف جديد ("C://POIPPT//Examples//example1.pptx") ؛
FileOutputStream out = FileOutputStream جديد (ملف) ؛
ppt.write(out);
< / pre> الكود أدناه هو البرنامج الكامل لإنشاء مستند PowerPoint فارغ:
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: