Ajouter propriété à un paragraphe en openxml
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 :
Citation:
Memory stream is not expandable
au moment où je sauve.
Code:
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