Ms word 打开XML将自定义不可见数据添加到段落/表格

Ms word 打开XML将自定义不可见数据添加到段落/表格,ms-word,openxml,openxml-sdk,Ms Word,Openxml,Openxml Sdk,是否有一种方法可以存储段落的附加数据,这些数据将在用户在MS Word中打开并保存文档后保留 我一直在为此使用CusotmXML,但事实证明这是不可能的,因为MS Word从文档结构中删除了所有CusotmXML元素 每个段落或表格都有一个ID,我想“配对”到我的数据源。 因此,稍后当我再次阅读docx时,我可以识别文档中每个未更改段落/表格的来源 段落上可以有一个divId,在xmlns:w14=”http://schemas.microsoft.com/office/word/2010/wo

是否有一种方法可以存储段落的附加数据,这些数据将在用户在MS Word中打开并保存文档后保留

我一直在为此使用CusotmXML,但事实证明这是不可能的,因为MS Word从文档结构中删除了所有CusotmXML元素

每个段落或表格都有一个ID,我想“配对”到我的数据源。
因此,稍后当我再次阅读docx时,我可以识别文档中每个未更改段落/表格的来源

段落上可以有一个divId,在xmlns:w14=”http://schemas.microsoft.com/office/word/2010/wordml“有属性w14:textId和w14:paraId

例如:

<w:p w14:textId="81a184ad" w14:paraId="81a184ad" >
  <w:pPr>
    <w:divId w:val="124349312"/>

有关详细信息,请参阅


或者,看看内容控件,您可以将其环绕在段落和表格周围(或放在其中)。它们具有ID属性;它们还允许您在其标记属性中存储任意文本。字符串的长度限制在120个字符左右。

这是一个相当复杂的解决方案,但是您是否使用自定义运行命令对数据进行排序,并使用
消失隐藏数据以防止显示

<w:rPr>
   <w:vanish />
</w:rPr>


消失
添加到
运行属性
将隐藏
运行
而不显示,您可以使用它来存储自定义数据,而不会影响文档的输出

一种可能是插入一个集合字段。这将在文档中创建一个书签,您可以将信息分配给该书签。但是,没有办法保护它不被用户删除。也可以使用数据字段


与“消失”(我认为这相当于“隐藏”字体格式)不同,如果用户习惯于显示非打印信息,则信息不会显示。但是,如果用户切换字段代码(Alt+F9),它将显示。

我刚刚发现,当我用MS Word打开生成的文档并将其保存到磁盘时。Word无法持久化paraId、textId属性和divId元素。内容控件对用户可见,不是吗?。我的附加数据不得对用户所看到的内容产生任何影响。如果您是第一次发表评论,我想您需要清楚您正在处理的Word版本(例如2007、2010、2013)。是的,控件是可见的(添加开发者菜单,然后在docx中插入一个以查看);您需要尝试一下,以确定您对用户界面是否满意。谢谢。我的观点是,它必须一直持续下去。完全独立于用户拥有的MSWord版本。如果任何版本的MS Word会剥离我的隐藏数据,这对我来说都不是一个解决方案,因为我无法控制MS Word用户拥有的版本。谢谢,我确实考虑过这一点,但坦率地说,这是一个奇怪的解决方案(从CustomXML开始),但也许它是唯一适合我需要的。正如你在问题中提到的,
CustomXML
是在一个专利案之后从开放式XML规范中删除的。我同意可能有某种方法来存储自定义数据以供编程使用!这个解决方案有一个小问题。如果用户打开“显示隐藏文本”,他/她将看到此标记。因此,这仍然远不是理想的解决方案,但仍然是目前我所知道的最接近的解决方案。我有一个类似的要求。你找到合适的解决办法了吗@阿尔坎