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;