elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Imprimir una hoja con C#
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Imprimir una hoja con C#  (Leído 3,594 veces)
Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Imprimir una hoja con C#
« en: 27 Marzo 2018, 21:46 pm »

Buenas:

Quiero imprimir un folio, una hoja con la consola en C#, no con Windows Form.
Aquí hay un ejemplo pero es con Windows Form en el cual no me interesa.
https://msdn.microsoft.com/es-es/library/system.drawing.printing.printersettings%28v=vs.110%29.aspx?cs-save-lang=1&cs-lang=csharp&f=255&MSPPError=-2147217396#code-snippet-2

He modificado el código así un poco.
Código
  1. using System;
  2. using System.IO;
  3.  
  4.  
  5. namespace Impresora_Consola_01
  6. {
  7.    class Program
  8.    {
  9.        static void Main(string[] args)
  10.        {
  11.            void Printing(string printer)
  12.            {
  13.                try
  14.                {
  15.                    streamToPrint = new StreamReader(@"Hola amigo.");
  16.                    try
  17.                    {
  18.                        printFont = new Font("Arial", 10);
  19.                        PrintDocument pd = new PrintDocument();
  20.                        pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
  21.                        // Specify the printer to use.
  22.                        pd.PrinterSettings.PrinterName = printer;
  23.  
  24.                        if (pd.PrinterSettings.IsValid)
  25.                        {
  26.                            pd.Print();
  27.                        }
  28.                        else
  29.                        {
  30.                            Console.WriteLine("Printer is invalid.");
  31.                        }
  32.                    }
  33.                    finally
  34.                    {
  35.                        streamToPrint.Close();
  36.                    }
  37.                }
  38.                catch (Exception ex)
  39.                {
  40.                    Console.WriteLine(ex.Message);
  41.                }
  42.            }
  43.        }
  44.    }
  45. }
  46.  

Cuando ejecutes el ejecutable, lo que tiene que hacer, buscar una impresora que tenga dispuesta, y imprima solo un folio. El mensaje que imprime una hoja es este:

Citar
Hola amigo.

Solo te he gastado un folio.

¿Es posible hacer en modo consola o tiene que ser si o si con Windows Form?

Saludos.


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: Imprimir una hoja con C#
« Respuesta #1 en: 28 Marzo 2018, 16:41 pm »

¿Es posible hacer en modo consola o tiene que ser si o si con Windows Form?

Tanto en tu código como en el del ejemplo de MSDN faltaría por declarar el método 'pd_PrintPage' que controla el evento 'PrintDocument.PrintPage' para poder controlar la impresión de la página (la fuente de texto, tamaño, color, márgenes, etcétera):
Citar
Código
  1. pd.PrintPage += new PrintPageEventHandler(pd_PrintPage);
...de lo contrario no haces nada.

Aquí tienes una solución reusable, adaptable, y muy sencilla de usar:

para saber como usar la clase, mira el ejemplo del 'modo de empleo' que escribí debajo de la clase PrintDocumentBasic en ese mmismo post.
no hace falta mencionar que puedes usar cualquier conversor de código VB.NET a C# para convertir la clase PrintDocumentBasic.

PD: recuerda que también puedes imprimir documentos con la librería de clases de WPF, lo cual sería mucho más sofisticado que usar los miembros de GDI+.

Saludos.


« Última modificación: 28 Marzo 2018, 18:20 pm por Eleкtro » En línea

Meta


Desconectado Desconectado

Mensajes: 3.438



Ver Perfil WWW
Re: Imprimir una hoja con C#
« Respuesta #2 en: 29 Marzo 2018, 08:00 am »

Buenas:

Pedazo de cocumento, has hecho un buen trabajo. ;)

Me ha ayudado tener ideas, ya puedo imprimir un folio, eso si, me sale una ventana con un botón cancelar y la palabra diciendo "Imprimiendo..." que no debería, pero al menos ya funciona. Dejo el código por si alguien lo necesita o coja ideas.

Código C#:
Código
  1. using System;
  2. using System.Drawing; // No olvidar y añadir referencia.
  3. using System.Drawing.Printing;
  4.  
  5. namespace Impresora_Consola_01
  6. {
  7.    class Program
  8.    {
  9.        static void Main(string[] args)
  10.        {
  11.            string s = @"Hola amigo.
  12.  
  13. Solo te he gastado un folio.";
  14.  
  15.            PrintDocument p = new PrintDocument();
  16.            p.PrintPage += delegate (object sender1, PrintPageEventArgs e1)
  17.            {
  18.                e1.Graphics.DrawString(s, new Font("Times New Roman", 12),
  19.                    new SolidBrush(Color.Black), new RectangleF(0, 0, p.DefaultPageSettings.PrintableArea.Width,
  20.                    p.DefaultPageSettings.PrintableArea.Height));
  21.            };
  22.  
  23.            try
  24.            {
  25.                p.Print();
  26.            }
  27.            catch (Exception ex)
  28.            {
  29.                // throw new Exception("Exception Occured While Printing", ex);
  30.            }
  31.        }
  32.    }
  33. }

Gracias por tu tiempo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como imprimir una hoja en windows!!
Java
BEATMASTER 0 3,327 Último mensaje 25 Julio 2009, 09:03 am
por BEATMASTER
Como imprimir un .pdf que no te deja imprimir?
Windows
nichihack 8 24,809 Último mensaje 2 Mayo 2013, 15:30 pm
por sol19200
Hoja de calculo.
Dudas Generales
usuani 0 3,467 Último mensaje 8 Mayo 2010, 15:31 pm
por usuani
Hoja de calculo
Desarrollo Web
HunterLuis 0 1,698 Último mensaje 8 Noviembre 2016, 04:00 am
por HunterLuis
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines