Advertisement
Guest User

Untitled

a guest
Sep 20th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  2. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  3. Sub mergeApprDocs()
  4.     Dim sFileToCopy As String
  5.     Dim sDocPath As String
  6.    
  7.     oMainDoc = ThisComponent
  8.    
  9.    
  10.     'strAddedDocPath = "C:\Users\mcalovich\AppData\Local\Temp\tmpgiol63\bids_writeup.odt"
  11.     'sInstcTmpFolder="tmpgiol63"
  12.     sInstcTmpFolder="tmp30qe9q"
  13.  
  14.  
  15.     sFileToCopy = "report\report_chp_1.odt"
  16.     sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
  17.     mergeDocByLocalPath(oMainDoc, sDocPath, 0)
  18.    
  19.     sFileToCopy = "bids_writeup.odt"
  20.     sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
  21.     mergeDocByLocalPath(oMainDoc, sDocPath, 0)
  22.    
  23.     sFileToCopy = "abstr_writeup.odt"
  24.     sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
  25.     mergeDocByLocalPath(oMainDoc, sDocPath, 0)
  26.    
  27.     sFileToCopy = "bids_writeup.odt"
  28.     sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
  29.     mergeDocByLocalPath(oMainDoc, sDocPath, 0)
  30.    
  31.     sFileToCopy = "aging_writeup.odt"
  32.     sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
  33.     mergeDocByLocalPath(oMainDoc, sDocPath, 0)
  34.    
  35.     sFileToCopy = "barber_writeup.odt"
  36.     sDocPath=tempPath(sInstcTmpFolder + "\" + sFileToCopy)
  37.     mergeDocByLocalPath(oMainDoc, sDocPath, 0)
  38.    
  39. End Sub
  40.  
  41. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  42. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  43.  
  44. Sub mergeDocByLocalPath(oBaseMergeDoc as object, sCopyDocDir as String, FirstImport as boolean)
  45.     Dim lowerpad as object
  46.     Dim upperpad as object
  47.     Dim oBaseMergeVCur as object
  48.     Dim oBaseMergeTCur as object
  49.     Dim document as object
  50.     Dim dispatcher as object
  51.     Dim importedsection as object
  52.    
  53.     'Open Document to Copy from minimized. Hiding it can be problematic if the macro fails.
  54.     Dim FileProperties(1) as New com.sun.star.beans.PropertyValue
  55.     FileProperties(0).Name = "Minimized"
  56.     FileProperties(0).Value = False
  57.     oCopyDoc = StarDesktop.loadComponentFromUrl(ConvertToURL(sCopyDocDir) , "_blank", 0, FileProperties)   
  58.    
  59.     oBaseMergeVCur = oBaseMergeDoc.GetCurrentController().getViewCursor()
  60.     oBaseMergeTCur = oBaseMergeDoc.Text.CreateTextCursor()
  61.  
  62.     oCopyVCur = oCopyDoc.GetCurrentController().getViewCursor()
  63.     oCopyVCur.jumpToLastPage()
  64.     oCopyVCur.jumpToEndOfPage()
  65.    
  66.     If NOT IsEmpty(oCopyVCur.TextSection) Then
  67.         'msgbox "No Supp Notes Files found for: " & result
  68.         'msgbox "This document ends on a section: "
  69.         'oCopyVCur.string = Chr(10) & Chr(10)  'want Alt+Enter here CHAR(10)
  70.         'oBaseMergeVCur.collapseToEnd
  71.         'oBaseMergeVCur.string = Chr(10)
  72.     End If 
  73.  
  74. 'Start the copy  
  75.     document   = oCopyDoc.CurrentController.Frame
  76.     dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
  77.     dispatcher.executeDispatch(document, ".uno:GoToEndOfDoc", "", 0, Array())
  78.    
  79.     oCopyVCur.jumpToLastPage()
  80.     oCopyVCur.jumpToEndOfPage()
  81.    
  82.     If NOT IsEmpty(oCopyVCur.TextSection) Then
  83.         'msgbox "No Supp Notes Files found for: " & result
  84.         'msgbox "This document ends on a section: "
  85.         'dispatcher.executeDispatch(document, ".uno:InsertSectionbreak", "", 0, Array())
  86.         'dispatcher.executeDispatch(document, ".uno:InsertSectionbreak", "", 0, Array())
  87.        
  88.         'oCopyVCur.string = Chr(10)'want Alt+Enter here CHAR(10)
  89.         'oCopyVCur.collapseToEnd
  90.         'oCopyVCur.string = Chr(10)
  91.         'oCopyVCur.BreakType = 2
  92.         'INSERT LINE BREAK HERE
  93.     End If 
  94.    
  95.     dispatcher.executeDispatch(document, ".uno:GoToEndOfDoc", "", 0, Array())
  96.     dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
  97.    
  98.     dispatcher.executeDispatch(document, ".uno:GoToStartOfDoc", "", 0, Array())
  99.     dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
  100.     dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())
  101.     dispatcher.executeDispatch(document, ".uno:SelectAll", "", 0, Array())
  102.     dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
  103.                
  104.     'Add two extra paragraphs. One above and below the section so that no paragraph styles are lost on import.
  105.     'Record their location.
  106. '   oBaseMergeDoc.Text.insertControlCharacter(oBaseMergeVCur.getEnd(),com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
  107. '   oBaseMergeDoc.Text.insertControlCharacter(oBaseMergeVCur.getEnd(),com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
  108. '   oBaseMergeDoc.Text.insertControlCharacter(oBaseMergeVCur.getEnd(),com.sun.star.text.ControlCharacter.PARAGRAPH_BREAK,False)
  109. '   oBaseMergeVCur.CharStyleName = "Default"
  110. '   oBaseMergeVCur.ParaStyleName = "Default"
  111. '   lowerpad = oBaseMergeDoc.getText.createTextCursorByRange(oBaseMergeVCur)
  112. '   oBaseMergeVCur.goUp(2, False)
  113. '   oBaseMergeVCur.gotoEndOfLine(False)
  114. '   oBaseMergeVCur.CharStyleName = "Default"
  115. '   oBaseMergeVCur.ParaStyleName = "Default"
  116. '   upperpad = oBaseMergeDoc.getText.createTextCursorByRange(oBaseMergeVCur)
  117.     'Set the import location so we can return to it later.
  118.     If FirstImport then
  119.         'insertPosition = upperpad
  120.         'FirstImport = False
  121.     End If
  122.     'oBaseMergeVCur.goDown(1, False)
  123.     'oBaseMergeVCur.CharStyleName = "Default"
  124.     'oBaseMergeVCur.ParaStyleName = "Default"
  125.                
  126. 'Paste in the new section, preserving the applied styles.
  127. '   document   = oBaseMergeDoc.CurrentController.Frame
  128. '   dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
  129. '   dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
  130.  
  131.     transferSelectedContent = oCopyDoc.CurrentController.getTransferable()
  132.     oBaseMergeDoc.currentController.insertTransferable(transferSelectedContent)
  133.                
  134. 'create a cursor for the whole imported section.
  135.     'importedsection = oBaseMergeDoc.Text.createTextCursorByRange(oBaseMergeVCur)
  136. '   importedsection.gotoRange(upperpad, False)
  137. '   importedsection.goRight(1, False)
  138. '   importedsection.gotoRange(oBaseMergeVCur,True)
  139.  
  140. 'Remove extra paragraph at the top, leave the one at the bottom for the next import
  141. '   oBaseMergeVCur.gotoRange(upperpad, False)
  142. '   oBaseMergeVCur.goRight(1, False)
  143. '   oBaseMergeTCur.gotoRange(oBaseMergeVCur, False)
  144. '   oBaseMergeTCur.gotoEndOfParagraph(True)
  145.    
  146. 'Removing the top pad can cause the paragraph style to change if there is already content on the line. Preserve the orginal style.
  147.     oCopyVCur.collapseToStart()
  148.     'StyleToPreserve = oCopyVCur.PageStyleName
  149.     'oBaseMergeVCur.goLeft(1, True)
  150.     'oBaseMergeVCur.string = ""
  151.     'oBaseMergeTCur.gotoRange(oBaseMergeVCur, False)
  152.     'oBaseMergeVCur.string = ""
  153.     'oBaseMergeTCur.gotoEndOfParagraph(True)
  154.     'oBaseMergeVCur.gotoRange(oBaseMergeTCur, False)
  155.     'oBaseMergeVCur.ParaStyleName = StyleToPreserve
  156.     'oBaseMergeVCur.collapseToStart
  157. '   oBaseMergeVCur.gotoRange(lowerpad, False)
  158.    
  159.     'oBaseMergeDoc.Text.insertControlCharacter(oBaseMergeVCur.getEnd(),com.sun.star.text.ControlCharacter.PAGE_BREAK,False)
  160.     document   = oBaseMergeDoc.CurrentController.Frame
  161.     dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
  162.     'dispatcher.executeDispatch(document, ".uno:GoToEndOfDoc", "", 0, Array())
  163.  
  164.     oBaseMergeVCur.jumpToLastPage()
  165.     oBaseMergeVCur.jumpToEndOfPage()
  166.  
  167.     'dispatcher.executeDispatch(document, ".uno:InsertPagebreak", "", 0, Array())
  168.    
  169.     oCopyDoc.Close(True)
  170.  
  171.  
  172. Done:
  173.     exit sub
  174.    
  175. End Sub
  176.  
  177. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  178. '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement