我正在尝试阅读PowerPoint幻灯片。但是当我的程序遇到类似
 “ Vo =ΣCF /(1 + t)”,shape.TextFrame.TextRange.Paragraphs(paraindex,1).Text属性无法正确读取它(特别是Σ符号和下标0(零)带有V)。因此最终结果是文本乱码。

[编辑]:我发现ppt的创建者已使用Insert-> powerpoint的方程式来编写“ΣCF”。因此,它成为特殊的文本。

[注意]:在不使用“插入”->“方程式”工具的情况下编写以上文本/等式,[按Alt + 228和下标选项]我的代码产生预期的结果。

请建议是否有一种方法可以处理使用“插入”->“方程式”工具编写的文本/方程式。

谢谢。

最佳答案

如果您的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/

10-12 04:47