[英]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.