c# - 如何在 C# 中读取 PowerPoint 幻灯片中的复杂方程式

标签 c# .net ms-office powerpoint office-interop

我正在尝试阅读 Powerpoint 幻灯片。但是当我的程序遇到像这样的文本时 "Vo = Σ CF/(1+t) ",shape.TextFrame.TextRange.Paragraphs(paraindex,1).Text 属性无法正确读取(特别是Σ符号和下标0(零)与V)。所以最后的结果是乱码。

[编辑]:我发现 ppt 的创建者使用 powerpoint 的 Insert->Equation 来编写 "Σ CF"。所以它成为一个特殊的文本。

[注意]:在不使用 Insert->Equation 工具、[按 Alt+228 和下标选项] 的情况下编写上面的文本/方程我的代码会产生预期的结果。

如果有一种方法可以处理使用 Insert->Equation 工具编写的文本/方程式,请提出建议。

谢谢。

最佳答案

如果您的 SWF 中出现乱码,可能是因为 Flash 不支持 Unicode 或因为错误的字符被传递到 SWF 中。例如,这将使您了解所选方程式中的内容。请注意,如果您使用 Asc() 而不是 AscW(),您会得到不正确的结果。

Sub WhatsInTheEquation()
    Dim oSh As Shape
    Dim oRng As TextRange2
    Dim sTemp As String
    Dim x As Long

    Set oSh = ActiveWindow.Selection.ShapeRange(1)
    For Each oRng In oSh.TextFrame2.TextRange.Runs
        Debug.Print oRng.Text
        Debug.Print oRng.Font.Name
        Debug.Print "Size: " & oRng.Font.Size
        sTemp = ""
        For x = 1 To Len(oRng.Text)
            sTemp = sTemp & " " & AscW(Mid$(oRng.Text, x, 1))
        Next
        Debug.Print sTemp
    Next

End Sub

关于c# - 如何在 C# 中读取 PowerPoint 幻灯片中的复杂方程式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16018744/

相关文章:

c# - SQL 存储过程未返回小数位

c# - 嵌套的 if 条件 vs 多个分离的 if 条件,每个条件都有 return 语句

.net - 用 CSS 修复我的 UI 问题?

vba - 获取 Visio 应用程序的窗口位置

c# - VSTO/字 : How to freeze a document window?

vba - VBA Debug.Print 记录到哪里?

c# - 打开另一个进程正在使用的文件

c# - 偶尔从 X509Certificate2 获取私钥时出现异常 "Invalid Provider type specified"或 "Key does not exist"

c# - 通过文件元数据 .NET Core 3.1 C# 查找 PNG 图像宽度/高度

c# - MEF:尽管找到并加载了 PRISM 模块,但应用程序声称找不到它们