1 pièce(s) jointe(s)
open XML Word 2007 et 2010 comportement différent
Bonjour,
Depuis hier, j'essaie de remplir un document word (2007 et 2010) à l'aide de signets positionnés et de c# bien entendu. J'utilise les API openXML (au passage que je trouve puissante) et pour cela voici le code utilisé :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public static void AddTextToBookmark(string fileName, string textToAdd)
{
IDictionary<String, BookmarkStart> bookmarkMap = new Dictionary<String, BookmarkStart>();
using (var document = WordprocessingDocument.Open(fileName, true))
{
var doc = document.MainDocumentPart;
foreach (BookmarkStart bookmarkStart in doc.RootElement.Descendants<BookmarkStart>())
{
bookmarkMap[bookmarkStart.Name] = bookmarkStart;
}
foreach (BookmarkStart bookmarkStart in bookmarkMap.Values)
{
if (bookmarkStart.Name == "date")
{
Text text = new Text(textToAdd);
Run run = new Run(new RunProperties(new Bold()));
run.Append(text);
bookmarkStart.InsertAfterSelf(run);//.InsertAfterSelf(run);
}
}
doc.Document.Save();
} |
Mon fichier word est en fait constituer de zone de texte dans lesquelles j'insère des signets qui seront remplis via mon application c#. Je met en pièce jointe en plus la forme du fichier docx.
Le plus fabuleux, c'est que cela fonctionne parfaitement bien avec word 2007 mais word 2010 il m'est impossible de rajouter le texte au niveau du signet dans le document ????
Je ne suis pas spécialiste de word mais quelqu'un sait peut être pourquoi ce code se comporte différemment entre les 2 versions word ?
Auriez vous des idées ?
open XML Word 2007 et 2010 comportement différent
Salut,
Merci de ta réponse !
C'est pour ça que je comprends pas. Je sais que openXML est un standard.
Cependant cela semble provenir des zones de texte contenant un signet car si je les enlève (word 2010), pas de soucis j'ai bien mon texte à l'intérieur de mon signet (et même de tout mes signets d'ailleurs)
Peut -être est ce le fait que ces zones de textes sont considérées comme des "images" ? Mais pourquoi cela fonctionne avec word 2007 ? Je dois dire que je suis perdu là.
@++
SD