Bonjour,
voila, j'ai un ficher docx dans un stream et je voudrais indenter tous le texte de ce docx. je sais que je dois mettre la balise pPr dans la balise p et dans celle-ci ajouter une autre balise ind avec un attribut left="1701".
voila le code que j'ai mais le problème est que je reçois le message d'erreur suivant :au moment où je sauve.Memory stream is not expandable
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 using (WordprocessingDocument mainDoc = WordprocessingDocument.Open(stream, true)) { XmlDocument dom = new XmlDocument(); dom.Load(mainDoc.MainDocumentPart.GetStream()); XmlNodeList xnlParagraphes = dom.GetElementsByTagName("w:p"); for (int i = 0; i < xnlParagraphes.Count; i++) { XmlNode xn = xnlParagraphes[i]; XmlNode xnBase = dom.CreateNode(XmlNodeType.Element, "w", "pPr", w.NamespaceName); XmlNode xnIndent = dom.CreateNode(XmlNodeType.Element, "w", "ind", w.NamespaceName); XmlAttribute xa = dom.CreateAttribute("w","left",w.NamespaceName); xa.InnerXml = "1701"; xnIndent.Attributes.Append(xa); xnBase.AppendChild(xnIndent); xn.AppendChild(xnBase); } using (Stream str = mainDoc.MainDocumentPart.GetStream(FileMode.Create, FileAccess.Write)) { using (XmlWriter xw = XmlWriter.Create(str)) dom.Save(xw); } }
si quelqu'un à déjà eu ce problème et qu'il a réalisé cette manip d'une autre manière je suis preneur.
Merci d'avance pour l'aide que l'on pourra me donner
Partager