Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/12/2007, 12:06
Nicops2
 
Fecha de Ingreso: diciembre-2007
Mensajes: 1
Antigüedad: 17 años, 3 meses
Puntos: 0
Información Evento Print de la clase PrintDocument

Hola a tod@s!.

Antes de nada presentarme, mi nombre es Nico. El motivo de crear este tema es porque me ha surgido un problema al intentar imprimir los datos de un formulario por la impresora. Me explico: quiero imprimir los datos que hay en un campo de texto cuando el usuario pulse un botón. El código es:

protected void im_imprimir_Click(object sender, ImageClickEventArgs e)
{

PrintDocument pd = new PrintDocument();
pd.PrintPage += new PrintPageEventHandler(Imprimir);

string texto = ct_datos.Text;
char[] seps = { '\n', '\r' }; // LF y CR
linea = texto.Split(seps);

totalLineasImpresas = 0;
pd.Print(); // ¡¡ bloqueo !!
}

private void Imprimir(object sender, PrintPageEventArgs e)
{
// Método que se encarga de la impresión.

float margenIzq = e.MarginBounds.Left / 2;
float margenSup = e.MarginBounds.Top / 2;
Font fuente = new Font("Times New Roman", 14);

// Impresión de cada una de las líneas

while (totalLineasImpresas < linea.Length)
{
e.Graphics.DrawString(linea[totalLineasImpresas], fuente, Brushes.Black, margenIzq, margenSup, new StringFormat());
totalLineasImpresas += 1;
}
}


El problema me surge cuando meto la URL de la página en el explorador porque el código se queda bloquedo en la sentencia "pd.Print()". Sin embargo si ejecuto el código en modo de depuración todo funciona perfectamente y no sé por qué. Agradecería que si alguien sabe la razón me la dijese. Gracias de antemano. Saludos.