Change the printer using ArcObjects


This ArcObjects code sample shows how to programmatically change the printer.


  1. Start ArcMap.
  2. Open the Visual Basic Editor.

    In ArcMap, select Tools > Macros > Visual Basic Editor.

  3. In the Project Explorer window, expand Project.mxt and select ArcMap Objects > ThisDocument then right-click and select View Code.
    [O-Image] Visual Basic Project  Explorer
    Code in the Project's ThisDocument code module will only run in the current map document. If you want to store the code in all your map documents, open the Normal.mxt ThisDocument code module instead.

  4. Copy the following code into the code module.

    Public Sub ChangePrinter()
    Dim pEnumPrinters As IEnumPrinterNames
    Dim pMxApp As IMxApplication
    Dim pPaper As IPaper
    Dim pPrinter As IPrinter
    Dim sPrinterName As String

    Set pMxApp = Application
    Set pPrinter = pMxApp.Printer
    Set pPaper = pMxApp.Paper
    Set pEnumPrinters = Application

    sPrinterName = pEnumPrinters.Next
    Do While Not sPrinterName = ""
    Debug.Print sPrinterName
    sPrinterName = pEnumPrinters.Next
    If sPrinterName = "\\OMNI\Zzyzx" Then
    pPaper.PrinterName = sPrinterName
    Exit Do
    End If

    End Sub

  5. Close the Visual Basic Editor.
  6. Run the code.

    A. Click Tools > Macros > Macros to display the Macros dialog box.
    B. Select a macro and click Run.

Article ID:000004724

  • ArcMap 8 x

Get help from ArcGIS experts

Contact technical support

Download the Esri Support App

Go to download options

Discover more on this topic