Skip to main content

C# print file on LAN Printer

If you want to print any file on network printer then you can try with this code block



  // Change Default Printer  
         System.Management.ManagementObjectSearcher search =  
                 default(System.Management.ManagementObjectSearcher);  
         System.Management.ManagementObjectCollection results =  
                 default(System.Management.ManagementObjectCollection);  
         System.Management.ManagementObject printer =  
                 default(System.Management.ManagementObject);  
         search =  
          new System.Management.ManagementObjectSearcher("select * from win32_printer");  
         results = search.Get();  
         //Get Default Printer  
         System.Management.ManagementObject defaultPrinter = null;  
         foreach (System.Management.ManagementObject foundPrinter in results)  
         {  
           System.Management.PropertyDataCollection  
              propertyDataCollection = foundPrinter.Properties;  
           System.Diagnostics.Debug.WriteLine(foundPrinter["Name"]);  
           if ((bool)foundPrinter["Default"]) // DEFAULT PRINTER  
           {  
             System.Diagnostics.Debug.WriteLine(foundPrinter["Name"]);  
             System.Diagnostics.Debug.WriteLine(foundPrinter["Location"]);  
           }  
         }  
         // Set Default printer  
         foreach (System.Management.ManagementObject foundPrinter in results)  
         {  
           System.Diagnostics.Debug.Print(foundPrinter["Name"].ToString());  
           if (foundPrinter["Name"].Equals(@"\\192.168.10.139\HP DeskJet 2130 series"))  
           {  
             System.Management.ManagementBaseObject outParams =  
                foundPrinter.InvokeMethod("SetDefaultPrinter", null, null);  
             if (outParams == null)  
               System.Diagnostics.Debug.WriteLine("Unable to set default printer");  
             Int32 retVal = (int)(uint)outParams.Properties["ReturnValue"].Value;  
             //if (retVal == 0)  
             //  return true;  
             //else  
             //  return false;  
             break;  
           }  
         }  
  try  
         {  
           ProcessStartInfo info = new ProcessStartInfo();  
           info.UseShellExecute = true;  
           info.Verb = "printto";  
           info.FileName = CurrentEmailFilePath;  
           info.CreateNoWindow = true;  
           info.WindowStyle = ProcessWindowStyle.Hidden;  
           Process p = new Process();  
           p.StartInfo = info;  
           p.Start();  
           p.WaitForInputIdle();  
           System.Threading.Thread.Sleep(3000);  
           if (false == p.CloseMainWindow())  
             p.Kill();  
         }  
         catch (Exception ex)  
         {  
           throw;  
         }  



Comments

Popular posts from this blog

C# run powershell script as administrator

Recently I was fetching a problem that I need to run a PowerShell script that will change TFS user Display name and SID. I was trying to run that script from C# that was not working due to TFS security update and TLS certificate. Using this code block I resolve the Issue. var newProcessInfo = new System.Diagnostics.ProcessStartInfo(); newProcessInfo.FileName = @"C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe"; newProcessInfo.Verb = "runas"; // Define Run as administrator newProcessInfo.Arguments = script; //Define your powershell script newProcessInfo.UseShellExecute = false; newProcessInfo.RedirectStandardOutput = true; // This will enable to read Powershell run output newProcessInfo.RedirectStandardError = true; Process proces = System.Diagnostics.Process.Start(newProcessInfo); proces.WaitForExit(); // I want to read the output string from powershell window StringBuilder output = new StringBuilder(); output.Append("Started"); while (!proces.St

ASP.NET MVC razor SAP Crystal report

Crete a new project: Add a aspx Master Page Create a new folder Reports and 2 sub folder crystal & crystalviewer Now add a web form page in crystalviewer  folder. Add the master page namespace in your web form page. MasterPageFile ="~/Views/Shared/ReportSite.Master" Replace your web form by this code < asp : Content ID ="Content1" ContentPlaceHolderID ="ContentPlaceHolder1" runat ="server">      </ asp : Content > Now go to design mode of your web form drag & drop the crystal report viewer in your web form. After that your page will be look look like this. Replace the code: < CR : CrystalReportViewer ID ="EmployeeList" runat ="server"   HasCrystalLogo ="False"     AutoDataBind ="True"   Height ="50px"   EnableParameterPrompt ="false" EnableDatabaseLogonPrompt

mvc razor textboxfor change event change another textboxfor value

Based on value of Weight, Rate , CNF & AWB it will change the value of Freight , TTLCNF anfd TTLFright . Freight= Weight*Rate; TTLCNF  = Weight*CNF; TTLFright=  Freight+ TTLCNF  + AWB; @Html.TextBoxFor(model => model.Weight, new { onChange="return GetWight(this);"}) @Html.TextBoxFor(model => model.Rate, new { onChange="return GetWight(this);"})/Kg @Html.TextBoxFor(model => model.Freight, new {disabled = "disabled" , @readonly = "readonly" ,onChange="return GetTTLFright(this);"}) @Html.TextBoxFor(model => model.CNFPK, new { onChange="return GetCNFPK(this);"}) @Html.TextBoxFor(model => model.TTLCNF, new {disabled = "disabled" , @readonly = "readonly",onChange="return GetTTLFright(this);" }) @Html.TextBoxFor(model => model.AWB, new { onChange="return GetTTLFright(this);"}) and script <script> function GetW