![](/img/trans.png)
[英]OpenXML 2.5 - WordProcessing - How to copy the styles from template document when creating a new document?
[英]How can I copy styles from a template to another document
我想通过 VSTO Word 插件中的命令从 Word 模板文件夹或我喜欢的任何其他文件夹复制模板的样式,并将复制的样式传递到文档。
请问我该怎么做。 我一直在搜索并看到它是可能的,但无法获得有关用于此的 c# 代码的最轻微的提示。
基本上有两种方法可以将样式从模板复制到在 Word 中打开的文档。 一种是使用管理器(最初在 Word Basic 中使用,因此有点原始),另一种是将带有样式的模板附加到文档,然后强制更新样式。
第一个允许只选择特定的样式,但这也意味着单独运行每个样式的副本。 请注意,样式由本地化名称指定 - 没有使用独立于语言的wdBuiltinStyle
枚举的选项。
第二个强制文档适应源模板中的所有样式。 它具有“副作用”,即通过指向模板的链接,还可以使任何构建块、键盘快捷键和宏可用于文档。 通过原始模板提供的任何这些内容都将不再可用。 可以通过重新附加原始模板而不更新样式来解决最后一个问题(请参阅第二个代码示例)。
组织者
private void btnCopyStyles_Organizer_Click(object sender, EventArgs e)
{
string tmplPath = @"C:\Test\StylesTemplate.dotm";
string[] aStyles = {"Heading 1", "Heading 2" };
for (int i = 0; i == aStyles.Length- 1; i++)
{
wdApp.OrganizerCopy(tmplPath, wdApp.ActiveDocument.FullName, aStyles[i],
Word.WdOrganizerObject.wdOrganizerObjectStyles);
}
}
附上模板
private void btnCopyStyles_AttachTemplate_Click(object sender, EventArgs e)
{
string tmplPath = @"C:\Test\StylesTemplate.dotm";
Word.Document doc = wdApp.ActiveDocument;
doc.set_AttachedTemplate(tmplPath);
doc.UpdateStyles();
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.