Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Sub mergeApprDocs()
- Dim sFileToCopy As String
- Dim sDocPath As String
- oMainDoc = ThisComponent
- 'strAddedDocPath = "C:\Users\mcalovich\AppData\Local\Temp\tmpgiol63\bids_writeup.odt"
- 'sInstcTmpFolder="tmpgiol63"
- sInstcTmpFolder="tmp30qe9q"
- sFileToCopy = "report\report_chp_1.odt"
- sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
- mergeDocByLocalPath(oMainDoc, sDocPath, 0)
- sFileToCopy = "bids_writeup.odt"
- sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
- mergeDocByLocalPath(oMainDoc, sDocPath, 0)
- sFileToCopy = "abstr_writeup.odt"
- sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
- mergeDocByLocalPath(oMainDoc, sDocPath, 0)
- sFileToCopy = "bids_writeup.odt"
- sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
- mergeDocByLocalPath(oMainDoc, sDocPath, 0)
- sFileToCopy = "aging_writeup.odt"
- sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
- mergeDocByLocalPath(oMainDoc, sDocPath, 0)
- sFileToCopy = "barber_writeup.odt"
- sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
- mergeDocByLocalPath(oMainDoc, sDocPath, 0)
- End Sub
- '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Sub mergeDocByLocalPath(oBaseMergeDoc as object, sCopyDocDir as String, FirstImport as boolean)
- Dim lowerpad as object
- Dim upperpad as object
- Dim oBaseMergeVCur as object
- Dim oBaseMergeTCur as object
- Dim document as object
- Dim dispatcher as object
- Dim importedsection as object
- 'Open Document to Copy from minimized. Hiding it can be problematic if the macro fails.
- Dim FileProperties(1) as New com.sun.star.beans.PropertyValue
- FileProperties(0).Name = "Minimized"
- FileProperties(0).Value = False
- oCopyDoc = StarDesktop.loadComponentFromUrl(ConvertToURL(sCopyDocDir) , "_blank", 0, FileProperties)
- oBaseMergeVCur = oBaseMergeDoc.GetCurrentController().getViewCursor()
- oBaseMergeTCur = oBaseMergeDoc.Text.CreateTextCursor()
- oCopyVCur = oCopyDoc.GetCurrentController().getViewCursor()
- oCopyVCur.jumpToLastPage()
- oCopyVCur.jumpToEndOfPage()
- If NOT IsEmpty(oCopyVCur.TextSection) Then
- 'msgbox "No Supp Notes Files found for: " & result
- 'msgbox "This document ends on a section: "
- 'oCopyVCur.string = Chr(10) & Chr(10) 'want Alt+Enter here CHAR(10)
- 'oBaseMergeVCur.collapseToEnd
- 'oBaseMergeVCur.string = Chr(10)
- End If
- 'Start the copy
- document = oCopyDoc.CurrentController.Frame
- dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
- dispatcher.executeDispatch(document, ".uno:GoToEndOfDoc", "", 0, Array())
- oCopyVCur.jumpToLastPage()
- oCopyVCur.jumpToEndOfPage()
- If NOT IsEmpty(oCopyVCur.TextSection) Then
- 'msgbox "No Supp Notes Files found for: " & result
- 'msgbox "This document ends on a section: "
- 'dispatcher.executeDispatch(document, ".uno:InsertSectionbreak", "", 0, Array())
- 'dispatcher.executeDispatch(document, ".uno:InsertSectionbreak", "", 0, Array())
- 'oCopyVCur.string = Chr(10)'want Alt+Enter here CHAR(10)
- 'oCopyVCur.collapseToEnd
- 'oCopyVCur.string = Chr(10)
- 'oCopyVCur.BreakType = 2
- 'INSERT LINE BREAK HERE
- End If
- dispatcher.executeDispatch(document, ".uno:GoToEndOfDoc", "", 0, Array())
- dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
- dispatcher.executeDispatch(document, ".uno:GoToStartOfDoc", "", 0, Array())
- dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
- dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())
- dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())
- dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
- 'Add two extra paragraphs. One above and below the section so that no paragraph styles are lost on import.
- 'Record their location.
- ' oBaseMergeDoc.Text.insertControlCharacter(oBaseMergeVCur.getEnd(),com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
- ' oBaseMergeDoc.Text.insertControlCharacter(oBaseMergeVCur.getEnd(),com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
- ' oBaseMergeDoc.Text.insertControlCharacter(oBaseMergeVCur.getEnd(),com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
- ' oBaseMergeVCur.CharStyleName = "Default"
- ' oBaseMergeVCur.ParaStyleName = "Default"
- ' lowerpad = oBaseMergeDoc.getText.createTextCursorByRange(oBaseMergeVCur)
- ' oBaseMergeVCur.goUp(2, False)
- ' oBaseMergeVCur.gotoEndOfLine(False)
- ' oBaseMergeVCur.CharStyleName = "Default"
- ' oBaseMergeVCur.ParaStyleName = "Default"
- ' upperpad = oBaseMergeDoc.getText.createTextCursorByRange(oBaseMergeVCur)
- 'Set the import location so we can return to it later.
- If FirstImport then
- 'insertPosition = upperpad
- 'FirstImport = False
- End If
- 'oBaseMergeVCur.goDown(1, False)
- 'oBaseMergeVCur.CharStyleName = "Default"
- 'oBaseMergeVCur.ParaStyleName = "Default"
- 'Paste in the new section, preserving the applied styles.
- ' document = oBaseMergeDoc.CurrentController.Frame
- ' dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
- ' dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
- transferSelectedContent = oCopyDoc.CurrentController.getTransferable()
- oBaseMergeDoc.currentController.insertTransferable(transferSelectedContent)
- 'create a cursor for the whole imported section.
- 'importedsection = oBaseMergeDoc.Text.createTextCursorByRange(oBaseMergeVCur)
- ' importedsection.gotoRange(upperpad, False)
- ' importedsection.goRight(1, False)
- ' importedsection.gotoRange(oBaseMergeVCur,True)
- 'Remove extra paragraph at the top, leave the one at the bottom for the next import
- ' oBaseMergeVCur.gotoRange(upperpad, False)
- ' oBaseMergeVCur.goRight(1, False)
- ' oBaseMergeTCur.gotoRange(oBaseMergeVCur, False)
- ' oBaseMergeTCur.gotoEndOfParagraph(True)
- 'Removing the top pad can cause the paragraph style to change if there is already content on the line. Preserve the orginal style.
- oCopyVCur.collapseToStart()
- 'StyleToPreserve = oCopyVCur.PageStyleName
- 'oBaseMergeVCur.goLeft(1, True)
- 'oBaseMergeVCur.string = ""
- 'oBaseMergeTCur.gotoRange(oBaseMergeVCur, False)
- 'oBaseMergeVCur.string = ""
- 'oBaseMergeTCur.gotoEndOfParagraph(True)
- 'oBaseMergeVCur.gotoRange(oBaseMergeTCur, False)
- 'oBaseMergeVCur.ParaStyleName = StyleToPreserve
- 'oBaseMergeVCur.collapseToStart
- ' oBaseMergeVCur.gotoRange(lowerpad, False)
- 'oBaseMergeDoc.Text.insertControlCharacter(oBaseMergeVCur.getEnd(),com.sun.star.text.ControlCharacter.PAGE_BREAK,False)
- document = oBaseMergeDoc.CurrentController.Frame
- dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
- 'dispatcher.executeDispatch(document, ".uno:GoToEndOfDoc", "", 0, Array())
- oBaseMergeVCur.jumpToLastPage()
- oBaseMergeVCur.jumpToEndOfPage()
- 'dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
- oCopyDoc.Close(True)
- Done:
- exit sub
- End Sub
- '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement