سؤال

أحتاج إلى إنشاء عرض تقديمي لـ 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);

                            }
                        }
                    }

}

آمل أن يوضح هذا طلبك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top