如何从 C# 更改 PowerPoint 中 TextRange 的字体颜色?

发布于 2024-10-21 04:46:27 字数 1062 浏览 11 评论 0原文

我使用 C# 创建了一个 PowerPoint 演示文稿:

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 的字体颜色?

I created a PowerPoint presentation using 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();

Now, how can I change the font color for objTextRng?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

从此见与不见 2024-10-28 04:46:28

以下代码将字体颜色设置为红色:

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

如果要指定不同的颜色,可以使用其他颜色之一 预定义颜色,或使用指定您自己的 RGB 值Color.FromArgb 方法

无论哪种方式,请确保调用 ToArgb 方法 您使用的 Color 对象上。 RGB 属性要求指定 RGB 颜色值。

The following code will set the font color to red:

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

If you want to specify a different color, you can use one of the other pre-defined colors, or specify your own RGB values using the Color.FromArgb method.

Either way, make sure that you call the ToArgb method on the Color object that you use. The RGB property requires that an RGB color value be specified.

雨的味道风的声音 2024-10-28 04:46:28

将此用于 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);  

Use this for 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;
    }

for example

    shape.TextFrame.TextRange.Font.Color.RGB = BGR(Color.Red);  
内心旳酸楚 2024-10-28 04:46:28

我认为此 MSDN 页面对此进行了解释。

编辑:
但这仅解释了如何在 VBScript 中执行此操作。您可以看到 TextRange 对象有一个属性 Font。这将返回 此处描述的 Font 对象资源显示您可以访问 RGB 属性。你可以像科迪告诉你的那样设置它。如果您需要更多信息,请参阅我刚刚指出的 MSDN 部分。

I think this MSDN page explain it.

EDIT:
But this only explain how to do it in VBScript. You can see that the TextRange object have a property Font. This returns the Font object describe here These resources show you that you have access to a RGB property. You can set it like Cody told you. If you need further info, refer to the MSDN section I just point you.

魂ガ小子 2024-10-28 04:46:28

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文