使用Word和VB.net自动化构建一个Word文档,其中包含多个附加在一起的文档。
所以我做Word.Documents.Add(firstDocument),然后转到文件的末尾并执行Word.Selection.InsertFile(secondDocument)并按预期工作,除非如果firstDocument是例如Verdana 10pt和secondDocument是Calibiri 11,它使用font&amp ;;插入secondDocument。 firstDocument的风格。
我无法在Selection.InsertFile的文档中找到任何会对格式产生任何影响的内容,所以我认为必须以另一种方式控制它。我还尝试在插入文件之前插入分页符和分节符(带分页符),但发现它对字体没有任何区别。
目前我有应用程序从secondDocument复制所有内容,关闭secondDocument,打开firstDocument,移动到结束然后粘贴。这有很多原因,但它保留了格式。
任何想法如何在插入firstDocument时保持secondDocument的确切格式?我需要摆脱使用剪贴板!
谢谢!
编辑:这是我试图使逻辑正确的代码:
Public Sub TestingWord()
Dim thisApp As New Word.Application
Dim SourceDoc As New Word.Document
Dim DestDoc As New Word.Document
Try
thisApp.Visible = False
DestDoc = thisApp.Documents.Add("X:\Isaac\First.docx")
thisApp.Selection.WholeStory()
thisApp.Selection.EndKey(Unit:=6)
thisApp.Selection.InsertBreak(Word.WdBreakType.wdSectionBreakNextPage)
thisApp.Selection.InsertFile("X:\Isaac\Second.docx")
thisApp.Selection.WholeStory()
thisApp.Selection.EndKey(Unit:=6)
thisApp.Selection.InsertBreak(Word.WdBreakType.wdSectionBreakNextPage)
thisApp.Selection.InsertFile("X:\Isaac\Third.docx")
DestDoc.SaveAs2("X:\Isaac\Yo.docx")
thisApp.Quit(SaveChanges:=Word.WdSaveOptions.wdSaveChanges)
releaseObject(DestDoc)
releaseObject(SourceDoc)
releaseObject(thisApp)
Catch ex As Exception
MsgBox("Error: " & ex.Message.ToString)
Finally
MsgBox("Success!")
End Try
End Sub
答案 0 :(得分:0)
解决了!
它不在代码中。问题是当您插入文件时,Word应用与目标文档相同的样式格式。在我的例子中,由于First.docx和Second.docx都使用了名为" Normal"的样式,因此Word会读取" Normal" Second.docx的样式与First.docx相同,实际上两个样式有不同的定义。
解决方案:
我浏览了每个模板,并为所有文档的每种字体大小和类型创建了独特的新样式名称。再次尝试这个过程,它就像一个魅力!