2
一个单词文档具有多个页面。如何使用VB.Net将这些页面分成单独的文档?VB.Net将单词文档分解为单独的文档(分页符作为分隔符)
我希望自动执行此过程。
我使用ms教程进行基本学习:http://support.microsoft.com/kb/316383 但我不知道如何在文档中查找分页符并将该页面的内容移动到单独的文档中。
一个单词文档具有多个页面。如何使用VB.Net将这些页面分成单独的文档?VB.Net将单词文档分解为单独的文档(分页符作为分隔符)
我希望自动执行此过程。
我使用ms教程进行基本学习:http://support.microsoft.com/kb/316383 但我不知道如何在文档中查找分页符并将该页面的内容移动到单独的文档中。
解决方案:
Private Sub ParseWordDoc(ByVal Filename As String, ByVal NewFileName As String)
Dim WordApp As Microsoft.Office.Interop.Word.Application = New Microsoft.Office.Interop.Word.Application()
Dim BaseDoc As Microsoft.Office.Interop.Word.Document
Dim DestDoc As Microsoft.Office.Interop.Word.Document
Dim intNumberOfPages As Integer
Dim intNumberOfChars As String
Dim intPage As Integer
'Word Constants
Const wdGoToPage = 1
Const wdStory = 6
Const wdExtend = 1
Const wdCharacter = 1
'Show WordApp
WordApp.ShowMe()
'Load Base Document
BaseDoc = WordApp.Documents.Open(Filename)
BaseDoc.Repaginate()
'Loop through pages
intNumberOfPages = BaseDoc.BuiltInDocumentProperties("Number of Pages").value
intNumberOfChars = BaseDoc.BuiltInDocumentProperties("Number of Characters").value
For intPage = 1 To intNumberOfPages
If intPage = intNumberOfPages Then
WordApp.Selection.EndKey(wdStory)
Else
WordApp.Selection.GoTo(wdGoToPage, 2)
Application.DoEvents()
WordApp.Selection.MoveLeft(Unit:=wdCharacter, Count:=1)
End If
Application.DoEvents()
WordApp.Selection.HomeKey(wdStory, wdExtend)
Application.DoEvents()
WordApp.Selection.Copy()
Application.DoEvents()
'Create New Document
DestDoc = WordApp.Documents.Add
DestDoc.Activate()
WordApp.Selection.Paste()
DestDoc.SaveAs(NewFileName & intPage.ToString & ".doc")
DestDoc.Close()
DestDoc = Nothing
WordApp.Selection.GoTo(wdGoToPage, 2)
Application.DoEvents()
WordApp.Selection.HomeKey(wdStory, wdExtend)
Application.DoEvents()
WordApp.Selection.Delete()
Application.DoEvents()
Next
BaseDoc.Close(False)
BaseDoc = Nothing
WordApp.Quit()
WordApp = Nothing
End Sub
幸得 “Jay Taplin”
你有没有看这个[SO问题](http://stackoverflow.com/questions/825254/word-automation-detect- if-page-break-is-necessary)它适用于C#,但应该给你一个想法。还可以看看这个[论坛](http://social.msdn.microsoft.com/Search/en-US/vstudio?query=word%20page%20breaks&rq=meta:Search.MSForums.ForumID(0e69520a-0af0 -4085-a8c4-c5f21ce20e01)+ site:microsoft.com&rn = Visual + Studio + Tools + for + Office +论坛) –
谢谢。但对我没有多大帮助。我也搜索并找到了解决方案。我不知道这是不是很好的解决方案,但它有效。解答在下面作为答案发布。如果您发现任何可以改进的地方,请发布。 –