VB.NET Word自动化:如何插入文件并保留格式

VB.NET Word自动化:如何插入文件并保留格式,vb.net,ms-word,Vb.net,Ms Word,使用Word和VB.net automation构建一个Word文档,该文档由几个附加在一起的文档组成 因此,我执行Word.Documents.Add(firstDocument),然后转到文件的末尾执行Word.Selection.InsertFile(secondDocument),它会按预期工作,除非firstDocument是例如Verdana 10pt,secondDocument是Calibiri 11,它使用firstDocument的字体和样式插入secondDocument

使用Word和VB.net automation构建一个Word文档,该文档由几个附加在一起的文档组成

因此,我执行Word.Documents.Add(firstDocument),然后转到文件的末尾执行Word.Selection.InsertFile(secondDocument),它会按预期工作,除非firstDocument是例如Verdana 10pt,secondDocument是Calibiri 11,它使用firstDocument的字体和样式插入secondDocument

我在Selection.InsertFile的文档中找不到对格式有任何影响的内容,因此我认为必须以另一种方式对其进行控制。我还尝试在插入文件之前插入分页符和分节符(带分页符),但发现这对字体没有影响

目前,我的应用程序复制了secondDocument、closing secondDocument、Open firstDocument、move to end和paste的所有内容。这有很多问题,但它保留了格式

在插入第一个文档时,如何保持第二个文档的精确格式?我需要远离使用剪贴板

谢谢

编辑:下面是我一直在测试的代码,试图获得正确的逻辑:

 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
解决了

代码里没有。问题是,在插入文件时,Word应用与目标文档相同的样式格式。在我的例子中,由于First.docx和Second.docx都使用了一种称为“Normal”的样式,Word将Second.docx的“Normal”样式解读为与First.docx相同,而实际上这两种样式有不同的定义

解决方案:

我检查了我的每个模板,并为所有文档中的每个字体大小和类型创建了唯一的新样式名称。再次运行该过程,效果非常好

解决了

代码里没有。问题是,在插入文件时,Word应用与目标文档相同的样式格式。在我的例子中,由于First.docx和Second.docx都使用了一种称为“Normal”的样式,Word将Second.docx的“Normal”样式解读为与First.docx相同,而实际上这两种样式有不同的定义

解决方案:


我检查了我的每个模板,并为所有文档中的每个字体大小和类型创建了唯一的新样式名称。再次运行该过程,效果非常好

看起来你可以复制粘贴文档并保留原始格式是的,我可以复制粘贴,但正如我在原始帖子中所说的,出于许多原因,我不得不放弃使用剪贴板。看起来你可以复制粘贴文档并保留原始格式是的,我可以复制粘贴,它可以工作,但正如我在最初的帖子中所说,出于许多原因,我不得不放弃使用剪贴板。