Fonts PowerPoint嵌入字体在API中不可见

Fonts PowerPoint嵌入字体在API中不可见,fonts,powerpoint,Fonts,Powerpoint,我编写了下面的代码来检查PowerPoint演示文稿是否嵌入了一些字体: private void Application_PresentationSave(Presentation Pres) { foreach (Font font in Pres.Fonts) if (font.Embedded != Office.MsoTriState.msoTrue) {

我编写了下面的代码来检查PowerPoint演示文稿是否嵌入了一些字体:

private void Application_PresentationSave(Presentation Pres)
    {
            foreach (Font font in Pres.Fonts)
                if (font.Embedded != Office.MsoTriState.msoTrue)
                {
                    UI.MessageBox.Show("Please embed the full font in the presentation."));
                    break;
                }
    }
根据Microsoft docs for PowerPoint 2010,演示文稿实际嵌入字体时,
.Embedded
属性应为
MsoTriState.msoTrue


不幸的是,即使通过允许字体嵌入(File/Options/Save/Embed Fonts)来保存演示文稿,代码也不会看到嵌入的字体

可能字体没有嵌入。并非所有字体都是可嵌入的,如果您保存了无法嵌入的字体,PPT也不会总是告诉您。右键单击Windows资源管理器中的字体文件并查看属性页,以查看字体是否可嵌入。您好,Steve,您的正确答案是“font.embeddeble”返回“-1”(因此可能为false)。。。这是代码方面的问题。但实际上,这种字体是嵌入的,因为我可以在没有安装这种字体的电脑上打开演示文稿,我在幻灯片中看到正确的字体。有点奇怪…实际上,-1表示是真的,字体是可嵌入的,但是如果字体没有被嵌入,PPT/Windows将替换另一种字体;如果是这样,我不确定它是否会告诉你这种字体的可嵌入性。改为检查font.Embedded属性,也许可以创建一个简单的演示文稿的单幻灯片版本,其中只包含一点文本,然后解压缩文件,查看zip文件中是否隐藏了类似嵌入式字体的内容。