Как я могу изменить цвет шрифта TextRange в PowerPoint из C #? - PullRequest
6 голосов
/ 09 марта 2011

Я создал презентацию PowerPoint, используя C #:

PowerPoint.Application powerpointApplication;
PowerPoint.Presentation pptPresentation;
PowerPoint.Slide Slide;

// Create an instance of PowerPoint.
powerpointApplication = new PowerPoint.ApplicationClass();

// Create a PowerPoint presentation.
pptPresentation = powerpointApplication.Presentations.Add(
Microsoft.Office.Core.MsoTriState.msoTrue);


// Create empty slide
Slide = pptPresentation.Slides.Add(1, PowerPoint.PpSlideLayout.ppLayoutBlank);

TextRange objTextRng = objSlide.Shapes[1].TextFrame.TextRange;
objTextRng.Text = "Remote sensing calendar 1";
objTextRng.Font.Name = "Comic Sans MS";
objTextRng.Font.Size = 48;
// TODO: change color
// objTextRng.Font.Color 



// Save presentation
pptPresentation.SaveAs( BasePath + "result\\2_example.ppt", 
                       PowerPoint.PpSaveAsFileType.ppSaveAsDefault, 
                       MsoTriState.msoTrue // TODO: что за параметр???
                      );
pptPresentation.Close();

Теперь, как я могу изменить цвет шрифта для objTextRng?

Ответы [ 4 ]

6 голосов
/ 09 марта 2011

Следующий код установит цвет шрифта на красный:

objTextRng.Font.Color.RGB = Color.Red.ToArgb();

Если вы хотите указать другой цвет, вы можете использовать один из других предопределенных цветов или указать свои собственные значения RGB, используя Color.FromArgb метод .

В любом случае, убедитесь, что вы вызываете метод ToArgb для объекта Color, который вы используете. Свойство RGB требует указания значения цвета RGB.

5 голосов
/ 04 января 2012

Используйте это для PPTX 2007

    private int BGR(Color color)
    {
        // PowerPoint's color codes seem to be reversed (i.e., BGR) not RGB
        //      0x0000FF    produces RED not BLUE
        //      0xFF0000    produces BLUE not RED
        // so we have to produce the color "in reverse"

        int iColor = color.R + 0xFF * color.G + 0xFFFF * color.B;

        return iColor;
    }

, например

    shape.TextFrame.TextRange.Font.Color.RGB = BGR(Color.Red);  
0 голосов
/ 26 сентября 2013

objTextRng.Font.Color.RGB = System.Drawing.ColorTranslator.ToOl (System.Drawing.Color.Blue);

0 голосов
/ 09 марта 2011

Я думаю эта страница MSDN объяснить это.

EDIT: Но это только объясняет, как это сделать в VBScript. Вы можете видеть, что объект TextRange имеет свойство Font. Это возвращает объект Font description here Эти ресурсы показывают, что у вас есть доступ к свойству RGB. Вы можете установить его так, как сказал Коди. Если вам нужна дополнительная информация, обратитесь к разделу MSDN, который я вам покажу.

...