While I was working with PDF files, I found that the generic code that combines/merges two PDF files fails if one of the PDF file is a Signed Document. I have took the site, wellsr.com code and tested.
Please note that the code works in Adobe Acrobat DC Pro (not Adobe Reader DC). You need to test in the previous versions of Adobe Acrobat.
Here is the code that I modified:
Private Function MergePDFs(SourceFileOne As String, SourceFileTwo As String, SaveAsFilename As String) As Boolean ' Function/Procedure Name : MergePDFs ' Variable Name(s) Data Type Description ' Variable(s) : SourceFileOne String PDF Filename Along With Full Path (Source #1 - Signed PDF Document) ' SourceFileTwo String PDF Filename Along With Full Path (Source #2) ' SaveAsFilename String PDF Filename Along With Full Path To Save (Target) ' Return Value : Boolean ' Description : This Function/Procedure merges two PDF files into ' one file and save it at a location set/given by the user. ' Returns True if the merge is successful. ' Returns False if the merge is not successful. ' Requirements : Requires Adobe Acrobat DC (Not Acrobat Reader DC) Application/Software. Dim objAdobeAcrobat As Object Dim objPDFDocumentOne As Object Dim objPDFDocumentTwo As Object On Error GoTo NoAcrobat 'Initialize the Adobe Acrobat objects Set objAdobeAcrobat = CreateObject("AcroExch.App") 'Adobe Acrobat Application Set objPDFDocumentOne = CreateObject("AcroExch.PDDoc") 'Destination File Set objPDFDocumentTwo = CreateObject("AcroExch.PDDoc") 'Source File 'Open PDF Document Two Call objPDFDocumentTwo.Open(SourceFileTwo) 'Open PDF Document One Call objPDFDocumentOne.Open(SourceFileOne) 'Merge PDF Document One Into PDF Document Two If objPDFDocumentTwo.InsertPages((objPDFDocumentTwo.GetNumPages - 1), _ objPDFDocumentOne, 0, objPDFDocumentOne.GetNumPages, 0) Then MergePDFs = True End If objPDFDocumentOne.Close 'Save PDF Document Two With A New Filename Call objPDFDocumentTwo.Save(1, SaveAsFilename) objPDFDocumentTwo.Close objAdobeAcrobat.CloseAllDocs objAdobeAcrobat.Exit NoAcrobat: On Error GoTo 0 Set objPDFDocumentTwo = Nothing Set objPDFDocumentOne = Nothing Set objAdobeAcrobat = Nothing End Function