I'm trying to get a specific PDF to open and print. Using the code below I am able to get the desired PDFs to open but not print. I've looked at many examples and they appear to be using objects not availible in my library. I've added the following libraries:
Adobe Acrobat 8.0 Type Library
Acrobat Access 3.0 Type Library
Adobe Acrobat 8.0 Browser Control Type Library 1.0
AcroIEHelper 1.0 Tpye Library
Any help with the code or any additional libraries that I'm not using will be greatly appreciated.
Option Compare DatabasePrivate Const SW_SHOWNORMAL = &H1&Private Declare Function ShellExecuteA Lib "shell32" ( _ ByVal hwnd As Long, _ ByVal lpszOp As String, _ ByVal lpszFile As String, _ ByVal lpszParams As String, _ ByVal LpszDir As String, _ ByVal FsShowCmd As Long) As LongPublic Sub OpenPDF(ByVal szPDFLocation As String) Dim Success As Long ' If the function succeeds, it returns a value greater than 32. Success = ShellExecuteA(0, "open", szPDFLocation, vbNullString, vbNullString, SW_SHOWNORMAL) If Success > 32 Then Debug.Print "Success" Else ' For a list of error codes. ' http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx Debug.Print "Error= " & Success End IfEnd SubPrivate Sub Command1_Click()Dim NameOfPDF As StringDim AVDoc As AcroAVDocNameOfPDF = 9814634 'to be replaced by a passed varibleOpenPDF "H:\Accounting\Finance-Sales & Marketing\SDamm\WIP\USFS MOD\Downloads\INVOICES\" & NameOfPDF & "-1.pdf"OpenPDF "H:\Accounting\Finance-Sales & Marketing\SDamm\WIP\USFS MOD\Downloads\INVOICES\" & NameOfPDF & "-2.pdf"End Sub
I was able to get it to print using the below code. however it donesnt close, leaving multiple instances of acrobat opened.
Option Compare DatabasePrivate Const SW_SHOWNORMAL = &H1&Private Declare Function ShellExecuteA Lib "shell32" ( _ ByVal hwnd As Long, _ ByVal lpszOp As String, _ ByVal lpszFile As String, _ ByVal lpszParams As String, _ ByVal LpszDir As String, _ ByVal FsShowCmd As Long) As LongPublic Sub PrintPDF(ByVal szPDFLocation As String) Dim Success As Long ' If the function succeeds, it returns a value greater than 32. Success = ShellExecuteA(0, "print", szPDFLocation, vbNullString, vbNullString, SW_SHOWNORMAL) If Success > 32 Then Debug.Print "Success" Else ' For a list of error codes. ' http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx Debug.Print "Error= " & Success End IfEnd SubPrivate Sub Command2_Click()Dim NameOfPDF As StringNameOfPDF = 9814634 'to be replaced by a passed variblePrintPDF "H:\Accounting\Finance-Sales & Marketing\SDamm\WIP\USFS MOD\Downloads\INVOICES\" & NameOfPDF & "-1.pdf"PrintPDF "H:\Accounting\Finance-Sales & Marketing\SDamm\WIP\USFS MOD\Downloads\INVOICES\" & NameOfPDF & "-2.pdf"End Sub
www.gnostice.com