إنشاء عرض PowerPoint 2007 من قالب
-
22-08-2019 - |
سؤال
أحتاج إلى إنشاء عرض تقديمي لـ PowerPoint 2007 من قالب مع افتح تنسيق XML SDK 2.0. يجب توفير القالب من قبل العميل ويستخدم في نمط التخطيط الفردي (الخط ، لون الخلفية أو الصورة ، ...). يحتاج إلى احتواء شريحة محددة مسبقا:
- شريحة النص
- شريحة الصورة
يجب أن يقوم التطبيق الآن بإنشاء نسخة من ملف القالب ، وإنشاء نسخ متعددة من شرائح النص والصورة واستبدال أصحاب المحتوى ببعض المحتوى.
لقد وجدت بالفعل بعض قصاصات الرمز من Microsoft لتحرير عنوان الشريحة ، حذفها أو استبدال صورة على شريحة. لكنني لم أعرف كيف يمكنني إنشاء نسخة من شريحة موجودة. ربما يمكن لشخص ما مساعدتي في هذا.
المحلول
لقد كنت أبحث حولي للحصول على إجابة مماثلة ووجدت بعض الموارد لمشاركتها:
http://msdn.microsoft.com/en-us/library/cc850834(office.14).aspx
أو المزيد من العينات
http://msdn.microsoft.com/en-us/library/cc850828(office.14).aspx
أو هذا الموقع
http://www.openxmldeveloper.com
هناك أيضا هذا كتاب مجاني يوثق معيار OpenXML الذي كان مفيدًا إلى حد ما.
نصائح أخرى
هذا مثال على ما تبحث عنه ، ولكن إذا لم يكن الأمر كذلك ، فأخبرني: http://openxmldeveloper.org/articles/7429.aspx
ل C#
File.Copy(SourceFile,ExportedFile);
يمكنك الاحتفاظ بالملف الأصلي بشكل أساسي.
الآن تفتح ExportedFile
PowerPoint.Application ppApp = new PowerPoint.Application();
PowerPoint.Presentation presentation;
presentation = ppApp.Presentations.Open(ExportedFile, MsoTriState.msoFalse, MsoTriState.msoTrue, MsoTriState.msoTrue);
الآن تكرار جميع الشرائح/الأشكال
foreach (PowerPoint.Slide slide in presentation.Slides)
{
slide.Select();
foreach (PowerPoint.Shape shape in slide.Shapes)
{
if (shape.Type.ToString().Equals("<any type of shape>"))
{
if (shape.TextFrame.TextRange.Text.Equals("<contains a name"))
{
shape.TextFrame.TextRange.Text = <new value>;
shape.Delete(); // or delete
shape.AddPicture(<your new picture>, MsoTriState.msoTrue, MsoTriState.msoTrue, left, top, width, height);
}
}
}
}
آمل أن يوضح هذا طلبك.