none
Imprimir por la impresora c# asp.net RRS feed

  • Pregunta

  • Saludos

    Amigos tengo un problema estoy programando en C# asp.net y no se como imprimir por la impresora.

    verán estoy tratando de escribir el nombre de la compañía que salga por la impresora es una cannon MG2500 papel 81/2 x 11

    se imprimirá al presionar un botón y no tengo ni la menor idea como hacerlo.

    por favor pueden darme un ejemplo con el código para imprimir y decirme también cual es la mejor forma de como debo hacerlo.

    se lo voy a gradecer.

    viernes, 1 de diciembre de 2017 12:27

Respuestas

  • Pregunta: mencionas que es una aplicación ASP.NET. La impresora, ¿está conectada al servidor o al cliente?

    Si está conectada al servidor, puedes imprimir usando la clase PrintDocument, a condición de que la cuenta del Pool de IIS (¡no la cuenta del usuario logado en el navegador!) tenga la impresora dada de alta y privilegios para usarla.

    Pero si la impresora está colgada del ordenador en el que se ejecuta el navegador del usuario, entonces no puedes disparar una impresión desde el lado servidor (imagínate que estuvieses navegando por Internet y de repente al pasar por un sitio web tu impresora se pusiera a imprimir cosas a causa de un comando enviado desde ese sitio web). En este caso, lo que se hace es aplicar a los estios de la página un "media query" del tipo "print", para indicar en qué formato debe imprimirse, y a continuación o bien permitir que el usuario pulse el botón "imprimir" del navegador, o bien ejecutar desde javascript la acción equivalente, que hará que se abra el diálogo de impresión. Otra alternativa que es muy típica es generar el documento a imprimir en formato PDF, y permitirle al usuario que lo descargue y luego lo imprima localmente cuando quiera.

    viernes, 1 de diciembre de 2017 13:21
  • Bien, para imprimir desde lado servidor usando un PrintDocument:

    Primero, construye un manejador de eventos para el evento PrintPage:

        private void pd_PrintPage(object sender, PrintPageEventArgs e)
        {
            e.Graphics.DrawString("Casa de cambio Vita", new Font("Arial", 10), Brushes.Black, 100, 200);
            e.HasMorePages = false;
        }
    


    Después, instancia el objeto PrintDocument, conéctale el manejador anterior, y llama a su método Print():

    PrintDocument pd = new PrintDocument();
    pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
    pd.Print();

    El PrintDocument tiene diversas propiedades que te permiten hacer cosas como seleccionar cuál es la impresora que quieres usar, cambiar las propiedades de impresión (copias, márgenes, etc), y muchas más.

    Recuerda que si haces esto en un servidor web, la impresora tiene que estar configurada y autorizada para la cuenta del Pool que ejecuta el código servidor, no vale con que esté configurada para la cuenta del usuario que accede desde el navegador.

    • Marcado como respuesta agustin173 lunes, 4 de diciembre de 2017 10:27
    sábado, 2 de diciembre de 2017 10:33

Todas las respuestas

  • Pregunta: mencionas que es una aplicación ASP.NET. La impresora, ¿está conectada al servidor o al cliente?

    Si está conectada al servidor, puedes imprimir usando la clase PrintDocument, a condición de que la cuenta del Pool de IIS (¡no la cuenta del usuario logado en el navegador!) tenga la impresora dada de alta y privilegios para usarla.

    Pero si la impresora está colgada del ordenador en el que se ejecuta el navegador del usuario, entonces no puedes disparar una impresión desde el lado servidor (imagínate que estuvieses navegando por Internet y de repente al pasar por un sitio web tu impresora se pusiera a imprimir cosas a causa de un comando enviado desde ese sitio web). En este caso, lo que se hace es aplicar a los estios de la página un "media query" del tipo "print", para indicar en qué formato debe imprimirse, y a continuación o bien permitir que el usuario pulse el botón "imprimir" del navegador, o bien ejecutar desde javascript la acción equivalente, que hará que se abra el diálogo de impresión. Otra alternativa que es muy típica es generar el documento a imprimir en formato PDF, y permitirle al usuario que lo descargue y luego lo imprima localmente cuando quiera.

    viernes, 1 de diciembre de 2017 13:21
  • hola

    estas en un ambiente web, donde conectas la impresora?

    si es en el servidor podrias usar codigo .net, pero recuerda que deberas configurar la impresora al usuario con el cual ejecuta el Application Pool del sitio

    si es en el cliente deberias utilizar javascript, utilizando alguna libreria como ser

    http://printjs.crabbly.com/

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 1 de diciembre de 2017 15:38
  • Hola agustin173

    Con base a tu consulta, te voy a compartir el siguiente enlace, en el cual por medio de ejemplos de código como imprimir usando asp.net y xml.

    Quedamos al pendiente de cualquier actualización de tu parte.

    Saludos Cordiales.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
     _____

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde. 

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.  

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    viernes, 1 de diciembre de 2017 17:25
    Moderador
  • amigos pueden darme un ejemplo del codigo por favor
    viernes, 1 de diciembre de 2017 21:09
  • pueden darme un ejemplo del codigo por favor
    viernes, 1 de diciembre de 2017 21:10
  • pueden darme un ejemplo por favor
    viernes, 1 de diciembre de 2017 21:10
  • pueden darme un ejemplo por favor
    viernes, 1 de diciembre de 2017 21:10
  • pueden darme un ejemplo por favor

    Pero un ejemplo ¿de cuál de las modalidades? Si te hemos dicho que hay varias alternativas y que son my distintas (por ejemplo, es completamente diferente que la impresora esté conectada al servidor o que esté conectada al cliente, y en caso de ser cliente hemos sugerido al menos tres formas distintas), lo mínimo que podrías decir es cuál de ellas es la que se aplica en tu caso para que podamos buscar un ejemplo de esa en concreto. También sería bastante conveniente que dijeras qué lenguaje de programación estás usando, cuál de las modalidades de ASP.NET usa tu programa (¿WebForns, MVC?) ...
    viernes, 1 de diciembre de 2017 21:28
  • ok discúlpenme

    la impresora esta conectada al servidor directamente y estoy usando webform C# asp.net

    lo que deseo es imprimir una etiqueta que diga "Casa de cambio Vita", estos es un proyecto de la universidad.

    por favor ayúdenme no se mucho de programación.

    sábado, 2 de diciembre de 2017 10:21
  • ok discúlpenme

    la impresora esta conectada al servidor directamente y estoy usando webform C# asp.net

    lo que deseo es imprimir una etiqueta que diga "Casa de cambio Vita", estos es un proyecto de la universidad.

    por favor ayúdenme no se mucho de programación.

    sábado, 2 de diciembre de 2017 10:22
  • ok discúlpenme

    la impresora esta conectada al servidor directamente y estoy usando webform C# asp.net

    lo que deseo es imprimir una etiqueta que diga "Casa de cambio Vita", estos es un proyecto de la universidad.

    por favor ayúdenme no se mucho de programación.

    sábado, 2 de diciembre de 2017 10:22
  • Bien, para imprimir desde lado servidor usando un PrintDocument:

    Primero, construye un manejador de eventos para el evento PrintPage:

        private void pd_PrintPage(object sender, PrintPageEventArgs e)
        {
            e.Graphics.DrawString("Casa de cambio Vita", new Font("Arial", 10), Brushes.Black, 100, 200);
            e.HasMorePages = false;
        }
    


    Después, instancia el objeto PrintDocument, conéctale el manejador anterior, y llama a su método Print():

    PrintDocument pd = new PrintDocument();
    pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
    pd.Print();

    El PrintDocument tiene diversas propiedades que te permiten hacer cosas como seleccionar cuál es la impresora que quieres usar, cambiar las propiedades de impresión (copias, márgenes, etc), y muchas más.

    Recuerda que si haces esto en un servidor web, la impresora tiene que estar configurada y autorizada para la cuenta del Pool que ejecuta el código servidor, no vale con que esté configurada para la cuenta del usuario que accede desde el navegador.

    • Marcado como respuesta agustin173 lunes, 4 de diciembre de 2017 10:27
    sábado, 2 de diciembre de 2017 10:33
  • Alberto mil Gracias funciono a la perfección.

    Gracias a todos por su comentario me sirvió de mucho

    gracias muchas gracias.

    lunes, 4 de diciembre de 2017 10:28
  • Hola

    Tengo un problema similar... yo si tengo la impresora conectada directamente al servidor, sin embargo no sé como configurar el IIS para que me reconozca la impresora y poder utilizarla.

    Tengo varias impresoras conectadas y por default la manda siempre a la misma aunque no sea la predeterminada, quisiera saber como cambio esa configuración.

    Saludos

    miércoles, 7 de marzo de 2018 19:30
  • Hola FcoCastro,

    Te recomendamos realizar tu consulta de manera independiente, de esta forma es mas facil para los colaboradores identificarla y brindarte la ayuda necesaria.

    Quedo al pendiente de tus comentarios.

    Saludos cordiales.

    Gracias por usar los foros de MSDN.

    Juan
    _____
     
    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
     
    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.

    jueves, 8 de marzo de 2018 16:39
    Moderador
  • me ha venido super bien este post me estaba volviendo loco. ahora si puedo imprimir un saludo y gracias

    jueves, 8 de marzo de 2018 16:54