2015-12-07 5 views
2

Comment puis-je trouver l'équation mathématique dans le fichier Word?Comment trouver l'équation mathématique dans le fichier Word et si elle est trouvée puis mis en évidence en utilisant vsto C#

Veuillez suggérer pour le même.

Ma sortie va recevoir comme ceci:

enter image description here

+0

Quelle version de Word? Comment l'équation mathématique a-t-elle été créée? Avez-vous besoin de trouver une équation spécifique ou une ou toutes les équations dans un document? –

+0

@Cindy, Ici utilisez Office 2010 et installez "MathType" alors vous obtiendrez l'équation –

+0

"MathType" est un produit tiers, que je n'ai pas. Donc je ne sais pas quel genre d'objet il met sur la surface de document de Word. Peut-être, c'est un membre de la collection InlineShapes et, s'il y a un OLEServer en arrière-plan, vous pouvez obtenir plus d'informations à ce sujet via la propriété InlineShape.Object.OleFormat. Mais c'est juste une supposition de ma part .. Vous pouvez probablement obtenir de meilleures informations du fabricant MathType http://www.dessci.com/en/support/mathtype/default.asp. En regardant le site Web, je vois également un SDK est fourni pour le produit, ce qui pourrait également aider. –

Répondre

3

Utilisez le code ci-dessous C# pour mettre en évidence toutes les équations MathType en couleur jaune. Avant d'utiliser ce code, ajoutez using Word = Microsoft.Office.Interop.Word; dans la déclaration de l'espace de noms dans votre fichier de classe.

public bool FindAndHighlightMathtypeEquation(ref Word.Range myRange) 
    { 
     try 
     { 
      int inlineShapesCount = myRange.InlineShapes.Count; 
      if (inlineShapesCount > 0) 
      { 
       for (int i = 1; i <= inlineShapesCount; i++) 
       { 
        Word.InlineShape currentShape = myRange.InlineShapes[i]; 
        Word.Range currentShapeRange = currentShape.Range; 
        Word.WdInlineShapeType typeOfCurrentShape = currentShape.Type; 

        if (typeOfCurrentShape != Word.WdInlineShapeType.wdInlineShapeEmbeddedOLEObject) 
        { 
         continue; 
        } 

        if (!currentShape.Field.Code.Text.Trim().ToLower().Contains("equation")) 
        { 
         continue; 
        } 

        currentShapeRange.Select(); 
        currentShapeRange.Application.Selection.Range.HighlightColorIndex = Word.WdColorIndex.wdYellow; 
       } 
      } 

      MessageBox.Show("Process Completed"); 

     } 
     catch (Exception) 
     { 
      throw; 
     } 
     return true; 
    } 
+0

C'est vraiment utile pour moi.Merci monsieur –