Как добавить контроль содержимого в документ Word 2007 с помощью OpenXML - PullRequest
6 голосов
/ 04 декабря 2009

Я хочу создать документ Word 2007 без использования объектной модели. Поэтому я бы предпочел создать его с использованием открытого формата XML. До сих пор я был в состоянии создать документ. Теперь я хочу добавить в него элемент управления контентом и сопоставить его с XML. Кто-нибудь может направить меня относительно того же ???

Ответы [ 2 ]

9 голосов
/ 11 декабря 2009

Anoop,

Вы сказали, что можете создать документ с помощью OpenXmlSdk. Исходя из этого предположения, вы можете использовать следующий код для создания элемента управления содержимым для добавления в элемент Wordprocessing.Body вашего документа.

//praragraph to be added to the rich text content control
Run run = new Run(new Text("Insert any text Here") { Space = StaticTextConstants.Preserve });
Paragraph paragraph = new Paragraph(run);

SdtProperties sdtPr = new SdtProperties(
        new Alias { Val = "MyContentCotrol" },
        new Tag { Val = "_myContentControl" });
SdtContentBlock sdtCBlock = new SdtContentBlock(paragraph);
SdtBlock sdtBlock = new SdtBlock(sdtPr, sdtCBlock);

//add this content control to the body of the word document
WordprocessingDocument wDoc = WordprocessingDocument.Open(path, true); //path is where your word 2007 file is
Body mBody = wDoc.MainDocumentPart.Document.Body;
mBody.AppendChild(sdtBlock);

wDoc.MainDocumentPart.Document.Save();
wDoc.Dispose();

Я надеюсь, что это ответит на часть вашего вопроса. Я не понял, что вы подразумеваете под «Сопоставить это с XML». Вы хотели сказать, что хотите создать CustomXmlBlock и добавить к нему ContentControl?

3 голосов
/ 07 декабря 2009

Ознакомьтесь с инструментарием Word Content Control на сайте www.codeplex.com.

Вот очень краткое объяснение того, как делать то, что вы пытаетесь.

  1. Вам необходимо иметь доступ к вкладке разработчика на ленте Word. Чтобы это заработало, нажмите на Office (Круглая штучка) в верхнем левом углу и выберите «Параметры Word» внизу меню. На первой странице параметров есть флажок для отображения панели инструментов разработчика.

  2. Используйте панель инструментов разработчика, чтобы добавить нужные элементы управления контентом на страницу. Нажмите кнопку свойств в разделе «Элементы управления содержимым» на панели разработчика и задайте свойства имени и тега (я придерживаюсь именования полей имени и тега с одинаковым именем).

  3. Сохраните и закройте документ word.

  4. Откройте инструментарий управления контентом, а затем откройте документ с помощью инструментария. Используйте боль в левой руке, чтобы создать собственный XML-файл для ссылки на ваши элементы управления.

  5. Теперь используйте вид связывания, чтобы перетаскивать сопоставления между пользовательским XML-файлом и пользовательскими элементами управления, отображаемыми на правой панели набора инструментов.

  6. Вы можете использовать openxml sdk 1.0 или 2.0 (все еще в ctp), чтобы открыть ваш текстовый документ в коде и получить доступ к пользовательскому XML-файлу, который содержится как часть текстового документа.

Если вы хотите посмотреть, как ваш текстовый документ выглядит как XML. Сделайте копию вашего документа Word, а затем переименуйте его, чтобы сказать «a.zip». Дважды щелкните файл zip, а затем перейдите к структуре папок. Основное содержание слова document содержится в папке word в файле с именем «document.xml». Пользовательская XML-часть документа находится в папке customXml и обычно находится в файле с именем "item1.xml".

Надеюсь, это краткое объяснение поможет вам начать работу.

...