MS Word,DOCX,Open XML - 通过更改XML来应用主题

时间:2014-07-16 09:08:34

标签: openxml wordprocessingml drawingml

需要通过操作XML将主题从一个word文档(DOCX)应用到另一个word文档。

我正在经历的道路是 -
word / themes文件夹包含至少一个主题#.xml,并且可以包含包含关系文件的rels文件夹。我决定不触摸rels文件夹并复制word / theme文件夹中存在的所有主题#.xmls(可能不止一个)。这对我有用。

我有两个担忧:
1.我是否还需要在word \ theme_rels中添加theme1.xml.rels文件?它包含映射到word \ media文件夹中的一个图像。我是否还需要添加图像映射?
2.对于诸如“Quotable”之类的少数主题,theme1.xml在'a:fmtScheme'节点中包含一个引用到关系id的引用,可能用于DrawingML和形状。

代表例如:

<a:blipFill rotWithShape="1">
<a:blip xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" r:embed="rId1">

由于这里的“rId1”是指styles.xml并在word_rels \ document.xml.rels中维护,我关心的是word_rels \ document.xml.rels映射到styles.xml中的文件不能是rId1主题正在应用(例如,对于styles.xml,这可能是rId5)。所以,我需要在复制时在theme1.xml中更改它以正常工作。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果此XML出现在theme1.xml中,则'rId1'是theme1.xml.rels中的键,而不是document.xml.rels。关系ids(rId#)在“源”XML文档中是唯一的,但在整个包(.docx文件)中不是唯一的。

由于这个是<a:blip>元素,因此关系将是图像部分,例如image1.jpg。我怀疑这是一个大型的引号图像,出现在拉出引文的前面。

如果您希望它正确显示,您需要确保在目标包中重建这些关系及其目标部分。这意味着“是”,您可能希望在正确的位置添加theme1.xml.rels文件,以及它引用的图像文件。

相关问题