Buscar

viernes, 12 de marzo de 2010

Cambiar reslucion a una imagen en C#

He tenido algunos problemas cuando intento insertar imágenes en crystal report que tienen una resolución mayor a 100 ppp, por lo tanto este código lee la imagen y la convierte a una resolución de 100 ppp para poderla usar en los reportes del Crystal:

public static byte[] imageToByteArray(string Ruta)
        {
            try
            {
                Image imageIn = Image.FromFile(Ruta);
                MemoryStream ms = new MemoryStream();


                Bitmap bmPhoto = new Bitmap(imageIn);
                bmPhoto.SetResolution(100, 100);
                bmPhoto.Save(ms, imageIn.RawFormat);

                return ms.ToArray();
            }
            catch
            {
                return new byte[0]; 
            }
        }
Este es el enlace a la forma como lo hacia antes.

Saber cual es la impresora por defecto c#

Este código busca la impresora por defecto en el sistema y devuelve el nombre, para que lo podamos utilizar desde Cristal Report o desde cualquier reporteador

!-- code formatted by http://manoli.net/csharpformat/ -->
public static string  GetImpresoraDefecto()
        {
         for (int i = 0; i < PrinterSettings.InstalledPrinters.Count; i++)
            {
                PrinterSettings a = new PrinterSettings();
                a.PrinterName = PrinterSettings.InstalledPrinters[i].ToString();
                if (a.IsDefaultPrinter)
                {
                   return   PrinterSettings.InstalledPrinters[i].ToString();

                }
            }
            return "";
        }
desde Cristal Report se utiliza de la siguinte manera:

rpt.PrintOptions.PrinterName = GetImpresoraDefecto();

espacio de nombres:
using System.Drawing.Printing;

Exportar DataTable a Excel

Este código sirve para guardar un DataTable en un Excel, yo lo utilizo para agregar la función de exportar a Excel en la aplicaciones donde utilizo Grids, ya que utilizo una versión del TDBGrid que no le funciona bien el exportar a.


public static void  ExportarExcelDataTable(DataTable dt,string RutaExcel)
        {
            const string FIELDSEPARATOR = "\t"; 
            const string ROWSEPARATOR = "\n";
            StringBuilder output = new StringBuilder();     
            // Escribir encabezados    
            foreach (DataColumn dc in dt.Columns)    
            {        
                output.Append(dc.ColumnName);
                output.Append(FIELDSEPARATOR);    
            }
            output.Append(ROWSEPARATOR); 
            foreach (DataRow item in dt.Rows)    
            {        
                foreach (object value in item.ItemArray)        
                {            
                    output.Append(value.ToString().Replace('\n',' ').Replace('\r',' ').Replace('.',','));            
                    output.Append(FIELDSEPARATOR);        
                }       
                // Escribir una línea de registro        
                output.Append(ROWSEPARATOR);    
            }   
            // Valor de retorno    
           // output.ToString();
            StreamWriter sw = new StreamWriter(RutaExcel);
            sw.Write(output.ToString()); 
            sw.Close();
        }