This method takes all of the PDFs in the folder c:acrobatdocstomerge and
merges them together to form a file called complete.pdf.
This code sample is posted here for the general benefit of the PDF development community. Attribution and usage guidelines are as noted in the code source; please respect the wishes of the author when using this code.
Option Explicit ' Force variable declaration
' Author : Planet PDF
' E-Mail: info@debenu.com
' Date : 08 March 1998
' Description: JoinAllAcrobatDocsInDir
' This vb method uses IAC to join all PDF documents in a folder
' to a predetermined filename
' This method / function should be extended to suit the requirements
' of an organisation
Public Const PDF_WILDCARD = '*.pdf'
Public Const PDF_DIRECTORY = 'c:acrobatdocstomerge'
Public Const JOIN_FILENAME = 'complete.pdf'
Sub JoinAllAcrobatDocsInDir()
Dim AcroExchApp As Object, AcroExchPDDoc As Object, _
AcroExchInsertPDDoc As Object
Dim strFileName As String, strPath As String
Dim iNumberOfPagesToInsert As Integer, _
iLastPage As Integer
Set AcroExchApp = CreateObject('AcroExch.App')
Set AcroExchPDDoc = CreateObject('AcroExch.PDDoc')
' Show the Acrobat Exchange window
AcroExchApp.Show
' Set the directory / folder to use
strPath = PDF_DIRECTORY
' Get the first pdf file in the directory
strFileName = Dir(strPath + PDF_WILDCARD, vbNormal)
' Open the first file in the directory
AcroExchPDDoc.Open strPath + strFileName
' Get the name of the next file in the directory [if any]
If strFileName <> '' Then
strFileName = Dir
' Start the loop.
Do While strFileName <> ''
' Get the total pages less one for the last page num [zero
based]
iLastPage = AcroExchPDDoc.GetNumPages - 1
Set AcroExchInsertPDDoc = CreateObject('AcroExch.PDDoc')
' Open the file to insert
AcroExchInsertPDDoc.Open strPath + strFileName
' Get the number of pages to insert
iNumberOfPagesToInsert = AcroExchInsertPDDoc.GetNumPages
' Insert the pages
AcroExchPDDoc.InsertPages iLastPage, AcroExchInsertPDDoc, 0,
iNumberOfPagesToInsert, True
' Close the document
AcroExchInsertPDDoc.Close
' Get the name of the next file in the directory
strFileName = Dir
Loop
' Save the entire document as the JOIN_FILENAME using SaveFull
[0x0001 = &H1]
AcroExchPDDoc.Save &H1, strPath + JOIN_FILENAME
End If
' Close the PDDoc
AcroExchPDDoc.Close
' Close Acrobat Exchange
AcroExchApp.Exit
End Sub