Как определить абзац OpenXml как программно вставленный? - PullRequest
6 голосов
/ 31 января 2012

Я программно добавляю абзац OpenXML в документ Word, и мне нужно иметь возможность идентифицировать этот абзац как мой позже. Есть идеи, как это сделать? Я попытался вставить комментарий XML и расширенные атрибуты, но когда вы сохраняете документ в слове, он удаляет все неизвестные XML. Неважно, является ли это атрибутом в абзаце или прогоне, или элементом перед абзацем, просто каким-то образом я могу определить его позже. Кроме того, я не хочу, чтобы этот идентификатор был виден в документе word.

Примеры того, что я мог бы использовать:

<paragraph id="myParagraph"></paragraph>
<otherelement>myparagraph</otherelement>
<paragraph></paragraph>

Любая помощь будет УДИВИТЕЛЬНОЙ, потому что у меня болит голова от кирпичной стены, в которую я врезаюсь.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 05 января 2014

Использовать имя стилена в свойствах абзаца.или попробуйте этот http://msdn.microsoft.com/en-us/library/office/hh674468.aspx

Надеюсь, это поможет.

3 голосов
/ 13 июня 2013

Дайте абзацу атрибут w: rsidR и присвойте ему уникальное значение; если при сохранении документа слово не присутствует, оно все равно будет случайным образом назначать свое собственное 8-значное шестнадцатеричное значение. (Значение не ограничено 8 цифрами или шестнадцатеричными символами. Word не будет изменять существующие идентификаторы RSID.)

При этом - убедитесь, что значения RSID уникальны, и НЕ изменяйте существующие атрибуты RSID - они являются уникальным идентификатором для этого абзаца, и если документ разбивается на несколько версий, и пользователь пытается объединить их вместе эти RSID используются для определения того, какие абзацы изменились.

(Также обратите внимание, что у прогонов также есть идентификаторы RSID.)

Если пользователь изменяет абзац, RSID этого абзаца может измениться.

Альтернативный вариант - использовать пользовательский XML: http://msdn.microsoft.com/en-us/library/bb608618.aspx

...