VB.NET Word自动化:如何插入文件并保留格式
使用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的所有内容。这有很多问题,但它保留了格式 在插入第一个文档时,如何保持第二个文档的精确格式?我需要远离使用剪贴板 谢谢 编辑:下面是我一直在测试的代码,试图获得正确的逻辑: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
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相同,而实际上这两种样式有不同的定义
解决方案:
我检查了我的每个模板,并为所有文档中的每个字体大小和类型创建了唯一的新样式名称。再次运行该过程,效果非常好 看起来你可以复制粘贴文档并保留原始格式是的,我可以复制粘贴,但正如我在原始帖子中所说的,出于许多原因,我不得不放弃使用剪贴板。看起来你可以复制粘贴文档并保留原始格式是的,我可以复制粘贴,它可以工作,但正如我在最初的帖子中所说,出于许多原因,我不得不放弃使用剪贴板。