Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I identify an OpenXml Paragraph as one I programmatically inserted?

Tags:

openxml

I am programmatically adding an OpenXML paragraph to a Word Document and I need to be able to identify that paragraph as mine later on. Any ideas on how to do this? I have tried inserting an XML comment and extended attributes but when you save the document in word it removes all unknown xml. It doesn't matter if it is an attribute in the paragraph or the run, or an element before the paragraph, just some way I can identify it later on. Also, I do not want this identifier visible in the word document.

Examples of what I could use:

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

Any help would be AWESOME because my head it hurting from the brick wall I have been running into.

Thanks!

like image 286
Stacy Avatar asked Jan 30 '12 22:01

Stacy


1 Answers

Give the paragraph a w:rsidR attribute and assign a unique value to it; if there is no value present when word saves the document it will randomly assign it's own 8-digit hexadecimal value anyway. (The value is not limited to 8 digits or hexadecimal characters. Word will not modify existing RSIDs.)

That being said -- make sure to keep RSID values unique and do NOT modify existing RSID attributes -- they are the unique ID for that paragraph, and if the document splits into multiple versions and a user tries to merge them back together those RSIDs are used to determine what paragraphs have changed.

(Also note that runs have RSIDs as well.)

If the user modifies the paragraph, the RSID of that paragraph may change.

The alternate option is to use Custom XML: http://msdn.microsoft.com/en-us/library/bb608618.aspx

like image 87
BrainSlugs83 Avatar answered Oct 19 '22 05:10

BrainSlugs83