VBA‎ > ‎

VBA to open a PDF file and print only certain pages

We needed to open a PDF file with VBA code and print only certain pages.    We searched, but couldn't find a way to do it without buying a license to Adobe Acrobat Standard.  
 
CODE:
 
Public Sub PrintPDFPartial(strFileName As String, intBeginPage As Integer, intEndPage As Integer)
    'This works but requires Adobe Acrobat Standard
    Dim AcroApp As AcroApp
    Dim AcroAVDoc As AcroAVDoc
    Dim AcroPDDoc As AcroPDDoc
    Set AcroApp = CreateObject("AcroExch.App")
    Set AcroAVDoc = CreateObject("AcroExch.AVDoc")
    Const POSTSCRIPT_LEVEL = 2
    If AcroAVDoc.Open(strFileName, vbNull) <> True Then
        Exit Sub
    End If
    Set AcroAVDoc = AcroApp.GetActiveDoc
    Set AcroPDDoc = AcroAVDoc.GetPDDoc
    AcroAVDoc.PrintPages intBeginPage - 1, intEndPage - 1, POSTSCRIPT_LEVEL, True, False
    AcroAVDoc.Close True
    AcroApp.Exit
    Set AcroDoc = Nothing
    Set AcroApp = Nothing

End Sub
Comments