2010-11-05 15 views
0

J'utilise Word Automation pour créer un document à partir de mon application et j'ai besoin d'ajouter trois signatures au pied de page d'un document. C'est facile, cependant, les faire apparaître comme je voudrais ne fonctionne pas.Ajout de trois images alignées à un pied de document Word

Voici le code que je utilise:

  //add initials to footer 
      if (oWordDoc.Sections.Count > 0) { 
       Range r = oWordDoc.Sections[1].Footers[WdHeaderFooterIndex.wdHeaderFooterPrimary].Range; 
       Object colapseDir = WdCollapseDirection.wdCollapseStart; 
       r.Collapse(ref colapseDir); 

       oWord.ActiveWindow.View.Type = WdViewType.wdPrintView; 
       oWord.ActiveWindow.ActivePane.View.SeekView = WdSeekView.wdSeekCurrentPageFooter; 
       oWord.Selection.TypeParagraph(); 

       oWord.Selection.Paragraphs.Alignment = WdParagraphAlignment.wdAlignParagraphLeft; 
       oWord.ActiveWindow.Selection.Font.Name = "Arial"; 
       oWord.ActiveWindow.Selection.Font.Size = 8; 


       if (!String.IsNullOrEmpty(plaintiffInitialFile)) { 
        r.InlineShapes.AddPicture(plaintiffInitialFile, ref oMissing, ref oTrue, ref oMissing); 
       } 

       oWord.ActiveWindow.Selection.TypeText("Plaintiff's Initals"); 
       oWord.ActiveWindow.Selection.TypeText("\t"); 


       if (!String.IsNullOrEmpty(plaintiffAttInitialFile)) { 
        r.InlineShapes.AddPicture(plaintiffAttInitialFile, ref oMissing, ref oTrue, ref oMissing); 
       } 

       oWord.ActiveWindow.Selection.TypeText("Plaintiff's Attorney's Initals"); 
       oWord.ActiveWindow.Selection.TypeText("\t"); 


       if (!String.IsNullOrEmpty(ekfgInitialFile)) { 
        r.InlineShapes.AddPicture(ekfgInitialFile, ref oMissing, ref oTrue, ref oMissing); 
       } 

       oWord.ActiveWindow.Selection.TypeText("EKFG's Initals"); 
      } 

Voici ce qu'il produit (j'ai ajouté des annotations) Results

Voici ce que je veux Desired Response

Qu'est-ce que dois-je faire?

Répondre

0

J'ai réussi à résoudre le problème au cas où quelqu'un rencontrerait ce problème. J'ai suivi les instructions ici: http://support.microsoft.com/kb/316384 pour créer une seule rangée, table de six colonnes.

Si quelqu'un d'autre essaie de le faire, ne pas oublier que l'automatisation de mot est essentiellement Visual Basic, donc lorsque vous abordez les cellules du tableau, les indices commencent à 1, pas 0.

Ajout de texte fonctionne comme dans l'exemple :

oTable.Cell(1, 2).Range.Text = "Plaintiff's Initials"; 

et l'ajout d'images fonctionne comme il était auparavant, sauf que cette fois la plage est votre cellule:

oTable.Cell(1, 1).Range.InlineShapes.AddPicture(plaintiffInitialFile, ref oMissing, ref oTrue, ref oMissing);