3 Replies Latest reply on Feb 18, 2018 8:46 AM by James Smith

    EDrawing API automatically print to default printer

    Robert Duncan

      I'm trying to write a function to automatically print a loaded into the EDrawing control in a Windows Form application to the user's default printer. The user should not have to see a printer dialog.

       

      I'm using Visual Studio 2012 and E-Drawing 2016.

       

      This is the code I'm using, which I inserted into a new project based on one of the examples on the API help site.

       

      If I make the first option of Print5 true to show the Printer Dialog, I do see the print dialog and can print the drawing. It does display the right printer if I change the default.

       

      If this option is false, the code goes to the OnFailedPrint event handler.

       

      Am I missing something here?

       

      Thanks.

       

              private void printDrawing(string FileName)
              {
                  try
                  {
                      PrinterSettings ps = new PrinterSettings();
                      string pName = ps.PrinterName;  //Get Default Printer Name
                      eDrawingControl1.eDrawingControlWrapper.SetPageSetupOptions(EModelView.EMVPrintOrientation.ePortrait,
                          1, 0, 0, 1, 7, pName, 0, 0, 0, 0);

                      eDrawingControl1.eDrawingControlWrapper.OnFinishedPrintingDocument += drawing_Printed;
                      eDrawingControl1.eDrawingControlWrapper.OnFailedPrintingDocument += drawing_PrintFailed;
                      eDrawingControl1.eDrawingControlWrapper.Print5(false, FileName, false, false, false,
                          EModelView.EMVPrintType.eScaleToFit, 0, 0, 0, false, 0, 0, "");
                      MessageBox.Show("Printed: " + FileName);
                  }
                  catch (Exception ex)
                  {
                      MessageBox.Show(ex.Message);
                  }

              }
              private void drawing_Printed(string JobName)
              {
                  MessageBox.Show("Printed: " + JobName);
              }
              private void drawing_PrintFailed(string JobName)
              {
                  MessageBox.Show("Not Printed: " + JobName);
              }