Скрытие контроля содержимого Word с пользовательскими частями XML - PullRequest
2 голосов
/ 19 июля 2011

У меня есть документ Word с кучей элементов управления контентом. Они сопоставлены с пользовательской частью XML. Чтобы создать документ на лету, я просто перезаписываю пользовательскую часть XML.

Проблема, с которой я столкнулся, заключается в том, что, если я не определил конкретный элемент, его пространство все еще видно в документе, отталкивая материал под ним и выглядит несовместимым с остальной частью документа.

Вот базовый пример моего кода:

var path = HttpContext.Current.Server.MapPath("~/Classes/Word/LawyerBio.docx");
using (WordprocessingDocument myDoc = WordprocessingDocument.Open(path, true))
{
      //create new XML string
      //these values will populate the template word doc
      string newXML = "<root>";

      if (!String.IsNullOrEmpty(_lawyer["Recognition"]))
      {
          newXML += "<recognition>";
          newXML += _text.Field("Recognition Title");
          newXML += "</recognition>";
       }
       if (!String.IsNullOrEmpty(_lawyer["Board Memberships"]))
       {
          newXML += "<boards>";
          newXML += _text.Field("Board Memberships Title");
          newXML += "</boards>";
       }
       newXML += "</root>";
       MainDocumentPart mainPart = myDoc.MainDocumentPart;

       //delete old xml part
       mainPart.DeleteParts<CustomXmlPart>(mainPart.CustomXmlParts);

       //add new xml part
       CustomXmlPart customXml = mainPart.AddCustomXmlPart(CustomXmlPartType.CustomXml);
       using(StreamWriter ts = new StreamWriter(customXml.GetStream()))
       {
           ts.Write(newXML);
       }
       myDoc.Close();
}

Есть ли способ заставить эти элементы управления контентом действительно сворачиваться / скрываться?

1 Ответ

0 голосов
/ 20 июля 2011

Я думаю, вам придется выполнить некоторую предварительную обработку перед открытием документа в Word или некоторую постобработку (например, с помощью макроса).

В качестве примера подхода предварительной обработки OpenDoPE определяет «условие», которое можно использовать для исключения неопределенного содержимого.

...