Чтение документа Word с открытым Xml C#, но без возможности локального сохранения изображений V: Group (W: pict) - PullRequest
0 голосов
/ 29 апреля 2020

Я читаю документ Word с помощью Open XML, как показано ниже

      using (WordprocessingDocument wordprocessingDocument = WordprocessingDocument.Open("filePath", false))
            {
NameTable nameTable = new NameTable();
            XmlNamespaceManager xmlNamespaceManager = new XmlNamespaceManager(nameTable);
            xmlNamespaceManager.AddNamespace("w", "http://schemas.openxmlformats.org/wordprocessingml/2006/main");

            string wordprocessingDocumentText;
            using (StreamReader streamReader = new StreamReader(wordprocessingDocument.MainDocumentPart.GetStream()))
            {
                wordprocessingDocumentText = streamReader.ReadToEnd();
            }

            XmlDocument xmlDocument = new XmlDocument(nameTable);
            xmlDocument.LoadXml(wordprocessingDocumentText);

            XmlNodeList paragraphNodes = xmlDocument.SelectNodes("//w:p", xmlNamespaceManager);

            var ImageParts = wordprocessingDocument.MainDocumentPart.ImageParts;

            foreach (XmlNode paragraphNode in paragraphNodes)
            {

                XmlNodeList textNodes = paragraphNode.SelectNodes(".//w:pict | .//w:drawing | .//w:object", xmlNamespaceManager);


                    foreach (XmlNode textNode in textNodes)
                    {
                        if (textNode.InnerXml.StartsWith("<wp:inline"))
                        {
                            countDrawing++;
                        }

                        switch (textNode.Name)
                        {
                            case "w:object":
                                //Getting the diagram from ImageParts And saving to local folder
                                break;
                            case "w:drawing":
                                //Getting the diagram from ImageParts And saving to local folder
                                break;
                            case "w:pict":
                                if (textNode.InnerXml.Trim().StartsWith("<v:shape"))
                                {
                                   //Getting the diagram from ImageParts And saving to local folder
                                }
                                else if (textNode.InnerXml.Trim().StartsWith("<v:group"))
                                {
                                   //Not able to save the diagram because it is not in the ImageParts.
                                }

                                break;
                        }
                      }
                    }

Я хочу получить все диаграммы, изображения и изображения в документе Word и сохранить его в своей локальной папке.

Если диаграмма Xml начинается с Объект или Рисунок , я получаю эту конкретную диаграмму из wordprocessingDocument.MainDocumentPart.ImageParts и сохраняю в мой локальный диск, но если данные Xml начинаются с V: группа Изображения не находятся в wordprocessingDocument.MainDocumentPart.ImageParts , поэтому я не могу сохранить их в своей локальной папке. Подскажите, пожалуйста, как мне прочитать V: group Изображение и сохранить в локальной системе.

Спасибо.

...