VB.Net Разделить текстовый документ на отдельные документы (разрыв страницы как разделитель) - PullRequest
2 голосов
/ 22 ноября 2011

Документ Word имеет несколько страниц. Как разделить эти страницы на отдельные документы с помощью VB.Net?

Я хочу автоматизировать этот процесс.

Я использовал учебник MS для базового обучения: http://support.microsoft.com/kb/316383 Но я не знаю, как найти разрывы страниц в документе и переместить содержимое этой страницы в отдельный документ.

1 Ответ

1 голос
/ 23 ноября 2011

Решение:

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 "

...