J'essaie de changer de texte et d'images dans un document Word à l'aide de C # et de Word Automation. Je l'ai bien fonctionné pour le texte où je fais quelque chose comme l'extrait ci-dessous, mais je ne sais même pas comment commencer pour remplacer l'image.
Toute aide est grandement appréciée! P>
oliver p>
3 Réponses :
Vous pouvez boucler dans les inlineshapes et remplacer les images
using System.Collections.Generic; using Word = Microsoft.Office.Interop.Word; namespace WordExample { class WordExample { #region Constructor public WordExample() { WordApp = new Microsoft.Office.Interop.Word.Application(); } #endregion #region Fields private Word.Application WordApp; private object missing = System.Reflection.Missing.Value; private object yes = true; private object no = false; private Word.Document d; private object filename = @"C:\FullPathToFile\example.doc"; #endregion #region Methods public void UpdateDoc() { d = WordApp.Documents.Open(ref filename, ref missing, ref no, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref yes, ref missing, ref missing, ref missing, ref missing); List<Word.Range> ranges = new List<Microsoft.Office.Interop.Word.Range>(); foreach (Word.InlineShape s in d.InlineShapes) { if (s.Type == Microsoft.Office.Interop.Word.WdInlineShapeType.wdInlineShapePicture) { ranges.Add(s.Range); s.Delete(); } } foreach (Word.Range r in ranges) { r.InlineShapes.AddPicture(@"c:\PathToNewImage\Image.jpg", ref missing, ref missing, ref missing); } WordApp.Quit(ref yes, ref missing, ref missing); } #endregion } }
Excellent code! Mais s'il est possible de déterminer une image dans la boucle? C'est parce que j'ai besoin de remplacer une seule image dans mon projet d'automatisation grâce à l'avance
Je sais que c'est vraiment vieux, mais la seule façon dont vous pouvez vraiment dire des formes, c'est d'ajouter des informations personnalisées. Vous pouvez ajouter un lien hypertexte et utiliser l'adresse ou utiliser le titre TITLE CODE> ou
Propriétés (CODE> ALTERATIVETEXT VISIBLES dans l'image de format code> CODE> Dialog, sous < Code> Texte alternatif code>).
Voulez-vous remplacer une forme ou une forme en ligne? C'est une grande différence!
Pour une forme en ligne, il y a beaucoup d'exemples sur le net.
Pour une forme que vous pouvez faire comme ceci: p>
Curieux quel genre de solution vous essayez de faire. Est-ce une fonctionnalité que vous exposez à l'intérieur de Word Add-in ou il s'agit d'une sorte d'automatisation par lots à partir d'une application externe? Si externe, je préférerais aller avec le Wordml via OpenXML SDK pour 2007 ou simplement en désordre avec le XML si 2003 à la place. Beaucoup plus rapide et plus facile à faire.
Juste une suggestion. Utiliser vb. Cela fera de votre vie dans la Terre de l'automatisation COM. En ce qui concerne le remplacement des images, vous pouvez rechercher des «gammes» et pourraient peut-être itération du texte et des objets en la recherche de types d'objets d'image.
@ROYGBIV: +1. Vb est beaucoup plus facile pour COM Automation
@oktavakol: Qu'essayez-vous de remplacer l'image?