PDF In-Depth

IAC - How to merge every PDF in a given folder into one

May 22, 1998


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

' 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 
            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
       ' Get the name of the next file in the directory
            strFileName = Dir
    ' Save the entire document as the JOIN_FILENAME using SaveFull 
[0x0001 = &H1]
        AcroExchPDDoc.Save &H1, strPath + JOIN_FILENAME

End If

' Close the PDDoc
' Close Acrobat Exchange
End Sub

(ARTS PDF and Planet PDF have been since acquired by Debenu)

PDF In-Depth Free Product Trials Ubiquitous PDF

Debenu Quick PDF Library

Get products to market faster with this amazing PDF developer SDK. Over 900 functions and an equally...

Download free demo

Why eBooks and mobile devices don't (yet) pose an existential threat to the PDF

Continuous upheaval is what makes watching the technology industry so exciting. David vs. Goliath battles are waged every day, with startups often winning against much larger businesses. For years and years, many have predicted the decline of the PDF given its age and perceived disadvantages. Today, with the PDF losing ground in emerging areas like mobile and eBooks, the calls for its ultimate demise are growing louder.

February 02, 2016
Platinum Sponsor

Search Planet PDF
more searching options...
Planet PDF Newsletter
Most Popular Articles
Featured Product

Debenu PDF Aerialist 12

The ultimate plug-in for Adobe Acrobat. Advanced splitting, merging, stamping, bookmarking, and link control. Take Acrobat to the next level.


Adding a PDF Stamp Comment

OK, so you want to stamp your document. Maybe you need to give reviewers some advice about the document's status or sensitivity. This tip from author Ted Padova demonstrates how to add stamps with the Stamp Tool along with related comments.