Как управлять висячими отступами с помощью PowerPoint API? - PullRequest
2 голосов
/ 25 августа 2011

Я программно создаю презентацию PowerPoint 2007 в C #, но когда я добавляю текст, вторая строка имеет отступ.Из пользовательского интерфейса я бы установил его, перейдя в Home-> Paragraph-> Indentation и установив «Before Text» в «0» и Special в «(none)».Как я могу выполнить то же самое программно?

        PowerPoint.Application app = new PowerPoint.Application();
        PowerPoint.Presentation p = app.Presentations.Add(Office.MsoTriState.msoTrue);
        app.Visible = Office.MsoTriState.msoTrue;

        PowerPoint.CustomLayout customLayout = p.SlideMaster.CustomLayouts[PowerPoint.PpSlideLayout.ppLayoutText];

        PowerPoint.Slide slide = p.Slides.AddSlide(p.Slides.Count + 1, customLayout);
        PowerPoint.Shape textShape = slide.Shapes[2];

        textShape.TextFrame.TextRange.ParagraphFormat.Bullet.Type = PowerPoint.PpBulletType.ppBulletNone;
        PowerPoint.TextRange range1 = textShape.TextFrame.TextRange.InsertAfter(@"Just enough text so that wrapping occurs.");
        range1.Font.Size = 54;

        p.SaveAs(@"c:\temp\test1.pptx", PowerPoint.PpSaveAsFileType.ppSaveAsDefault, Office.MsoTriState.msoTrue);
        p.Close();
        app.Quit();

Итак ... как мне отбросить висячий отступ?

1 Ответ

2 голосов
/ 26 августа 2011

В PPT 2007 и более поздних версиях работа с формой TextFrame2.Textrange.Paragraphs (x) .ParagraphFormat свойства. .LeftIndent дает вам общий отступ для абзаца. .FirstLineIndent дает вам отступ для первой строки (и он относительно значения .LeftIndent)

...