Automatisation des mots côté serveur

Je recherche des alternatives à l’utilisation d’openxml pour un projet d’automatisation de mots côté serveur. Est-ce que quelqu’un connaît d’autres moyens permettant de manipuler des signets et des tableaux de mots?

    Je suis actuellement en train de développer un projet d’automatisation des mots pour mon entreprise et j’utilise DocX avec une API très simple et directe. L’approche que j’utilise est la suivante: chaque fois que j’ai besoin de travailler directement avec XML, cette API a une propriété nommée “xml” dans la classe Paragraph qui vous permet d’accéder au répertoire xml sous-jacent afin que je puisse le gérer. La meilleure partie est de ne pas casser le XML et de ne pas corrompre le document résultant. J’espère que cela t’aides!

    Exemple de code utilisant DocX ..

    XNamespace ns = "http://schemas.openxmlformats.org/wordprocessingml/2006/main"; using(DocX doc = DocX.Load(@"c:\temp\yourdoc.docx")) { foreach( Paragraph para in doc.Paragraphs ) { if(para.Xml.ToSsortingng().Contains("w:Bookmark")) { if(para.Xml.Element(ns + "BookmarkStart").Atsortingbute("Name").Value == "yourbookmarkname") { // you got to your bookmark, if you want to change the text..then para.Xml.Elements(ns + "t").FirstOrDefault().SetValue("Text to replace.."); } } } } 

    Une autre API permettant exclusivement de travailler avec des signets est .. http://simpleooxml.codeplex.com/

    Exemple de suppression de texte de bookmarkstart à bookmarkend à l’aide de cette API.

      MemoryStream stream = DocumentReader.Copy(ssortingng.Format("{0}\\template.docx", TestContext.TestDeploymentDir)); WordprocessingDocument doc = WordprocessingDocument.Open(stream, true); MainDocumentPart mainPart = doc.MainDocumentPart; DocumentWriter writer = new DocumentWriter(mainPart); //Simply Clears all text between bookmarkstart and end writer.PasteText("", "YourBookMarkName"); //Save to the memory stream, and then to a file writer.Save(); DocumentWriter.StreamToFile(ssortingng.Format("{0}\\templatetest.docx", GetOutputFolder()), stream); 

    Chargement du document Word dans différentes API à partir du stream de mémoire.

     //Loading a document file into memorystream using SimpleOOXML API MemoryStream stream = DocumentReader.Copy(@"c\template.docx"); //Opening it from the memory stream as OpenXML document WordprocessingDocument doc = WordprocessingDocument.Open(stream, true); //Opening it as DocX document for working with DocX Api DocX document = DocX.Load(stream);