PDF Merge and renumber pages  
       
      Printed From: www.exp-systems.com
        Category:  PDF reDirect
       Forum Name:  Programming 
       Forum Discription:  VBA and Batch Tools to control PDF reDirect Pro
       URL: http://www.exp-systems.com/Forum_exp/forum_posts.asp?TID=788
       Printed Date: 04 Nov 25 at 12:47AM
      
 
  
      Topic: PDF Merge and renumber pages
       
      Posted By: JSPeta
       Subject: PDF Merge and renumber pages
       Date Posted: 23 Sep 11 at 9:30PM
       
      
        
          
	
I am already merging PDF files in one PDF file with VBA code.  Is there a way to re-number the pages in the new merged PDF file using VBA code.
 
 Thanks
 Jim [IMG]smileys/smiley1.gif" align="middle" /> 
          | 
         
        
      
 
  Replies: 
       
      Posted By: Michel_K17
       
      Date Posted: 23 Sep 11 at 11:40PM
       
      
        
          
	
Hi,
      Probably your best bet for renumbering is to use the stamp feature, and place a new stamp on top of each page with the page number.
     Before playing with the VBA code, take a look at the stamp called "Page Number Footer.txt" which is what you are looking for. Finally, take a look at the sample code, and search for the word "Utility_Apply_Text_Stamp", and look for the sample code for applying a stamp to your new merged  PDF.
     Cheers!
  
  ------------- Michel Korwin-Szymanowski
 EXP Systems LLC
          | 
         
        
        
       
      
      Posted By: JSPeta
       
      Date Posted: 25 Sep 11 at 2:38PM
       
      
        
          
	
Hi, I find this, but I don't see where I can apply it to my pdf in some path. I am not understanding something
 
 thanks
 Jim
 
 
    This setting is a reference to a pre-established stamp that you created ahead of time with PDF reDirect Pro in the Preferences >> Stamps screen. The stamps are either a PDF style stamp or a TEXT style stamp. Therefore, what you would need to provide is the name of the stamp file.
 
     If you want to add a text stamp (also known as a watermark) on your PDF "on-the-fly" through your code, you can use the following command:
 
     oPDF.Utility_Apply_Text_Stamp
 
     You can specify the text, color, location, and a URL link if you want. Here are more details:
 
         ' Sample Code that applies a text stamp to your new PDF
         '------------------------------------------------------
         ' Parameters are:
         '  - Pages: FIRST_PAGE or ALL_PAGES or LAST_PAGE or NEW_PAGE_IN_FRONT or
         '           NEW_PAGE_AT_BACK or SECOND_PAGE_ONWARD or FIRST_TO_SECOND_TO_LAST
         '  - Location: UPPER_LEFT or UPPER_CENTER or UPPER_RIGHTCENTER or
         '              CENTER_STRETCHED or LOWER_LEFT or LOWER_CENTER or LOWER_RIGHT
         '  - Layer: ONTOP or UNDERNEATH
         '           Warning: Powerpoint has an opaque bottommost layer so stamps will never appear unless ONTOP
         '  - WebLink: Hyperlink (http://, https://, ftp://, mailto:) associated with your text
         '             Examples: "http://www.exp-systems.com", or "mailto:test@yahoo.com"
         '  - JavaScript: for experts only. Insert Javascript to turn stamp into a button.
         '  - Text: The text you want to display
         '  - Standard Font: Here are the fonts you can use:
         '      - FONT_COURIER, or FONT_COURIER_BOLD, or FONT_COURIER_BOLD_OBLIQUE, or FONT_COURIER_OBLIQUE
         '      - FONT_HELVETICA, or FONT_HELVETICA_BOLD, or FONT_HELVETICA_BOLD_OBLIQUE, or FONT_HELVETICA_OBLIQUE
         '      - FONT_TIMES, or FONT_TIMES_BOLD, or FONT_TIMES_OBLIQUE, or FONT_TIMES_BOLD_OBLIQUE
         '  - Text Style: Select Style of Text such as Size, Color and/or Underline.
         '                I have created a few standard constants that you can use, or you
         '                can make your own. Colors are given in Red/Green/Blue
         '      - UNDERLINE = ""
         '      - SIZE10 = "[S=010]"               << S = "Text Size"
         '      - SIZE12 = "[S=012]"               << S = "Text Size"
         '      - SIZE14 = "[S=014]"               << S = "Text Size"
         '      - BLACKTEXT = "[T=000,000,000]"    << T = "Text Color"
         '      - YELLOWBACK = "[B=255,255,000]"   << B = "Back Color"
         '
         TempBool = oPDF.Utility_Apply_Text_Stamp(FIRST_PAGE, _
                                             LOWER_LEFT, _
                                             ONTOP, _
                                             "http://www.exp-systems.com", _
                                             "", _
                                             "Your Text Here", _
                                             FONT_HELVETICA, _
                                             UNDERLINE & SIZE12 & BLACKTEXT & YELLOWBACK)
 
          | 
         
        
        
       
      
      Posted By: JSPeta
       
      Date Posted: 25 Sep 11 at 4:07PM
       
      
        
          
	
With a little school of hard knocks, reading, and being lucky, I have figured it out.
 
 Jim
 
 
         TempBool = .Utility_Merge_PDF_Files(sJobKeyPath, Files_to_Merge)
         TempBool = .Utility_Open_PDF(sJobKeyPath, "")         
         TempBool = .Utility_Apply_Text_Stamp("1", "6", "true", "", "", "AIHA Participant 199873             Page <#> of <###>   AAMT Control # F101 Rev. 0 3/5/2010", "4", " [s=010][B=255-255-255]")
         TempBool = .Utility_Close_PDF(sJobKeyPath)
 
          | 
         
        
        
       
      
      Posted By: Michel_K17
       
      Date Posted: 28 Sep 11 at 8:30AM
       
      
        
          
	
 Good job! I am glad that you were able to figure it out.  
  Cheers!
 
 
  ------------- Michel Korwin-Szymanowski
 EXP Systems LLC
          | 
         
        
        
       
      
      Posted By: JSPeta
       
      Date Posted: 03 Oct 11 at 8:09AM
       
      
        
          
	
This is my working VBA code with no liabilty on my part.
 Jim
 ------------------------------------------
 
     Dim oPDF As New PDF_reDirect_v25002.Batch_RC_AXD
     Dim Files_to_Merge(50) As String
     Dim TempBool As Boolean
     Dim sJobKeyPath As String
     Dim dbs As DAO.Database
     Dim rs As DAO.Recordset
     Dim sSQL As Variant
     Dim nJobID As Variant
     Dim sNextFile As Variant
     Dim nFileCnt As Integer
     ' system folder definition
     Dim fso
     Dim fol As String
     Set fso = CreateObject("Scripting.FileSystemObject")
     ' process all lab report results into PFD's
     Call cmdRunAll_Click
     
     nJobID = [Forms]![frmCustomer]![frmJob]![JobID]
     Set dbs = CurrentDb
     sSQL = "SELECT tblJob.JobKey FROM tblJob WHERE tblJob.JobID =" & nJobID
     Set rs = dbs.OpenRecordset(sSQL)
      sJobKeyPath = rs.Fields(0)
     ' Files to Merge
     'sPath = "c:\CSLocal\PDFS"
     '-----------------------------
     ' count the PDF files in folder
     nFileCnt = 0
     
     sNextFile = Dir$("c:\CSLocal\PDFS\*.pdf*")
     Do While sNextFile <> ""
         nFileCnt = nFileCnt + 1
         sNextFile = Dir
        ' MsgBox sNextFile
     Loop
     '------------------------
     ' Fill the array with all pdf's in the folder
     Dim iCnt As Integer
     iCnt = 0
     sNextFile = Dir$("c:\CSLocal\PDFS\*.pdf*")
     For iCnt = 1 To nFileCnt
        Files_to_Merge(iCnt) = "c:\CSLocal\PDFS\" + sNextFile
        sNextFile = Dir
     Next iCnt
    ' Set file name for output
     sJobKeyPath = strFolderPath + sJobKeyPath + "\LabCust_Result.pdf"
     ' merge all pdfs into
     With oPDF
         '
         TempBool = .Utility_Merge_PDF_Files(sJobKeyPath, Files_to_Merge)
         If Not TempBool Then
             ' NOTES ON ERROR CODES for oPDF.ErrorLastDLL
             ' 401 - One of the Input File could not be opened
             ' 410 - One of the Input File could not be decrypted
             MsgBox "An Error Occured: " & .LastErrorDescription & vbCrLf & _
                      "Error Number =" & Str$(.LastErrorNumber) & vbCrLf & _
                      "DLL Error Number =" & Str$(.ErrorLastDLL), _
                     vbExclamation
         Else
             MsgBox "Merge Successful.", vbInformation
         End If
         
     End With
     'release the resultant pdf for more work below
     ' Add footer with page re-numbering
     With oPDF
     
         TempBool = .Utility_Open_PDF(sJobKeyPath, "")
         TempBool = .Utility_Apply_Text_Stamp("1", "6", "true", "", "", "AIHA Participant 199873             Page <#> of <###>   AAMT Control # F101 Rev. 0 3/5/2010", "4", " [s=010][B=255-255-255]")
         TempBool = .Utility_Close_PDF(sJobKeyPath)
     End With
     Set oPDF = Nothing
 -------------------------------------------------------
          | 
         
        
        
       
      
      Posted By: Michel_K17
       
      Date Posted: 03 Oct 11 at 10:21AM
       
      
        
          | 
	
Thanks for posting the solution! 
   
          | 
         
        
        
       
      
     |