AddPrinter (IEPrint) Example for Visual Basic

Private Sub AddPrinter_Click()
   Const DMPAPER_USER = 1
   Const TEST_PRINTER_NAME = "Test Printer Name"
   
   Dim PrinterSpecifications As New EpnPrinterSpecifications
   Dim MultiSaveOptions As New EpnMultiSaveOptions
   Dim MailMessageInfo As New EpnMailMessageInfo
   Dim BatchPrinterInfo As New EpnBatchPrinterInfo
   Dim PrintersList As New EpnPrinterList
   Dim ePrint As New ePrint
   
   Dim nRet As Integer
   
   If ePrint.IsSupportLocked (SUPPORT_OEM) Then
      ePrint.UnlockSupport SUPPORT_OEM, OEM_KEY
   End If
   
   ePrint.AddPrinter TEST_PRINTER_NAME, PRINTER_TASK
   
   If (nRet = 0) Then
      'Prepare Printer Specifications
      'Custom Papers IDs starts from "DMPAPER_USER + 200"
      PrinterSpecifications.PaperID = DMPAPER_USER + 200
      PrinterSpecifications.PaperSizeName = "Custom Paper Name"
      PrinterSpecifications.PaperHeight = 11
       
      PrinterSpecifications.PaperWidth = 8
      PrinterSpecifications.DimensionsInInches = True
      PrinterSpecifications.PortraitOrient = True
      PrinterSpecifications.MarginsPrinter = "Margins Printer Name"
      PrinterSpecifications.PrintQuality = 300
      PrinterSpecifications.YResolution = 300
        
      ' Set OEM Printer Specifications
      ePrint.SetPrinterSpecifications TEST_PRINTER_NAME, PrinterSpecifications
      
       'Prepare Save Options
      MultiSaveOptions.UseSave = True
      MultiSaveOptions.SaveElementsCount = 1
      
      MultiSaveOptions.PrinterSaveOptions (0).SaveOptions.FileName = "c:\Untitled.cmp"
      MultiSaveOptions.PrinterSaveOptions(0).SaveOptions.Format = FILE_CMP
      MultiSaveOptions.PrinterSaveOptions(0).SaveOptions.DocumentType = FT_SAVE_TYPE_RASTER
      MultiSaveOptions.PrinterSaveOptions(0).SaveOptions.RasterOptions.BitsPerPixel = 24
      MultiSaveOptions.PrinterSaveOptions(0).SaveOptions.RasterOptions.QFactor = 100
      MultiSaveOptions.PrinterSaveOptions(0).SaveOptions.RasterOptions.StampBits = 24
      MultiSaveOptions.PrinterSaveOptions(0).SaveOptions.RasterOptions.StampWidth = 128
      MultiSaveOptions.PrinterSaveOptions(0).SaveOptions.RasterOptions.StampHeight = 128
      MultiSaveOptions.PrinterSaveOptions(0).SaveOptions.RasterOptions.MultiPageFile = False
      
      'Set OEM Printer Save Options
      ePrint.SetPrinterSaveOptions TEST_PRINTER_NAME, MultiSaveOptions
      
      'Prepare Mail Message
      MailMessageInfo.UseMail = True
      MailMessageInfo.To = "someone@somedomain.com"
      MailMessageInfo.Cc = "another@anotherdomain.com"
      MailMessageInfo.Bcc = "someonespecial@anotherdomain.com"
      MailMessageInfo.Subject = "Attached Images"
   MailMessageInfo.Body = "Hello, the images are attached." 
   'Index of the save options index to be used for the e-mailed files. 
   'Index of the PrinterSaveOptions property in the EpnMultiSaveOptions
      'passed to the SetPrinterSaveOptions. 
      
      MailMessageInfo.EmailSaveOptionsIndex = 0
      
      'Set Printer Mail Message
      ePrint.SetPrinterMailMessageInfo TEST_PRINTER_NAME, MailMessageInfo
      
      'Prepare Printers List
      ' This will add the Default Printer to the Printers List
      BatchPrinterInfo.PrinterName = Printer.DeviceName
      ePrint.GetDefaultEnhancedOptions BatchPrinterInfo.EnhancedOptions
      BatchPrinterInfo.Flags = VALID_ENHANCED_OPTIONS
      PrintersList.AddPrinter BatchPrinterInfo
   
      'Set  Printer Batch Printers List
      ePrint.SetPrinterBatchPrintersList TEST_PRINTER_NAME, PrintersList
      
      ' Set  Printer Conflict Solve
      Dim RenamingOptions As New EpnRenamingOptions
      ePrint.GetDefaultRenamingOptions RenamingOptions
      ePrint.SetPrinterConflictSolving TEST_PRINTER_NAME, SAVE_APPEND_FAVOR_RENAME, RenamingOptions
   
      'Set E-Mail Configurations
      Dim MailConfigurationSettings  As New EpnMailConfigurationSettings
      
      MailConfigurationSettings.IsMAPI = True
      MailConfigurationSettings.UseDefaultMapiProfile = True
      MailConfigurationSettings.Flags = 0
      
      ePrint.SetPrinterEmailConfiguration TEST_PRINTER_NAME, MailConfigurationSettings
   End If
End Sub