Programadores dedicados a C sharp .Net, eres nuevo, experto o quieres aprender a programar en C Sharp, aquí encontraras todo lo que necesitas.
 
ÍndiceCalendarioFAQBuscarMiembrosGrupos de UsuariosChatRegistrarseConectarse
Conectarse
Nombre de Usuario:
Contraseña:
Entrar automáticamente en cada visita: 
:: Recuperar mi contraseña
Últimos temas
Buscar
 
 

Resultados por:
 
Rechercher Búsqueda avanzada
Síguenos:
Crear foro Crear foro Crear foro

Comparte | 
 

 Programa de impresión complejo (multiples hojas).

Ver el tema anterior Ver el tema siguiente Ir abajo 
AutorMensaje
Luis Garcia
STAFF TEAM
STAFF TEAM


Mensajes : 61
Puntos : 109

MensajeTema: Programa de impresión complejo (multiples hojas).   Miér Mar 16, 2011 2:50 pm

[Tienes que estar registrado y conectado para ver esa imagen]

Hola, en este ejemplo utilizamos printpreview, un printDialog y de forma directa mediante un método, para realizar una impresión de forma compleja, es decir, solo imprimiendo el contenido de un ritchtextbox, la impresión puede ser de muchísimas hojas.

Empezamos agregando los "using" necesarios:

using System.Windows.Forms;
using System.Drawing.Printing;
using System.Drawing;

Dentro de la clase declaramos:

PrintDocument documento = new PrintDocument();//Documento a imprimir
int ItemCounter = 0;

Que es el documento que se imprimirá, un objeto de tipo "PrintDocument" o dicho en español documento a imprimir.

En el constructor agregamos:
Código:

 public Form1()
        {
            InitializeComponent();
            documento.PrintPage += new PrintPageEventHandler(documento_PrintPage);
        }

También insertamos en el evento Validated, para llevar un conteo de las paginas:

Código:

  void PrintPreviewControl_Validated(object sender, EventArgs e)
        {
            ItemCounter = 0;
        }

Agregamos 3 botones, en el primero utilizaremos un printpreview, en el segundo utilizaremos un PrintDialog y en el tercero imprimiremos con el metodo print del documento.

En el evento click del primer botón:

Código:


 PrintPreviewDialog VistaPrevia = new PrintPreviewDialog();
         
          VistaPrevia.Document = documento;
          VistaPrevia.PrintPreviewControl.Document = documento;
          VistaPrevia.PrintPreviewControl.Validated += new EventHandler(PrintPreviewControl_Validated);
          VistaPrevia.Show();


En evento click del segundo boton:
Código:


PrintDialog DialogoImprimir = new PrintDialog();
            DialogoImprimir.Document = documento;
            if (DialogoImprimir.ShowDialog() == DialogResult.OK) {
                DialogoImprimir.Document.Print();
              }

En evento click del tercer botón:
Código:

 documento.Print();


En evento PrintPage del documento a imprimir insertamos el siguiente código (Incluiré el evento para comodidad):
Código:

 void documento_PrintPage(object sender, PrintPageEventArgs e)
        {
         
//Para cancelar la impresión
float margenIzdo=e.MarginBounds.Left;
float margenSuperior=e.MarginBounds.Top;
float lineas=0, posicionY=0;
int Counter=0;
string lineaactual;

Font miFuente=new Font("Times New Roman",16,FontStyle.Regular);

lineas=e.MarginBounds.Height/miFuente.GetHeight(e.Graphics);

while (Counter < lineas && ItemCounter <= richTextBox1.Lines.Length - 1)
{
    lineaactual = richTextBox1.Lines[ItemCounter];
    posicionY = margenSuperior + Counter * miFuente.GetHeight(e.Graphics);

    e.Graphics.DrawString(lineaactual, miFuente, Brushes.Black, margenIzdo, posicionY);
    Counter += 1;
    ItemCounter += 1;

    if (!(ItemCounter == richTextBox1.Lines.Length))
    { e.HasMorePages = true;
    }
    else{ e.HasMorePages = false; }
}
e.Graphics.DrawString("\n\nVisitanos en C Sharp Programadores México para más códigos" + "\n\nhttp://www.facebook.com/group.php?gid=381514445922&ref=ts", miFuente, Brushes.Blue, margenIzdo, posicionY);         
}

Descargar: [Tienes que estar registrado y conectado para ver este vínculo]

CuteWriter

En caso de no contar con una impresora y para no gastar hojas, puedes utilizar este programa que en vez de imprimir en impresora lo hace sobre un archivo pdf.

[Tienes que estar registrado y conectado para ver este vínculo]
Volver arriba Ir abajo
Ver perfil de usuario
angel.qwert
Novato


Mensajes : 1
Puntos : 1

MensajeTema: Re: Programa de impresión complejo (multiples hojas).   Jue Nov 22, 2012 12:00 am

mm porfas vuelvelos a subir en otro servidor para mas facil...
te lo agaradeceria mucho
muy buen aporte pero quisiera verlo con mas explicacion
con el programa ya hecho porfas.. gracias...
Volver arriba Ir abajo
Ver perfil de usuario
 
Programa de impresión complejo (multiples hojas).
Ver el tema anterior Ver el tema siguiente Volver arriba 
Página 1 de 1.
 Temas similares
-
» BUSCARV EN MULTIPLES HOJAS (Peo Sjoblom)
» Filtros en multiples hojas
» Celtx. Un programa para escribir guiones.
» Programa que mejore el rendimiento de nuestra RAM ?
» no se donde se ha ido un programa

Permisos de este foro:No puedes responder a temas en este foro.
CSPromex :: PROGRAMACIÓN EN C# :: Código abierto-
Cambiar a: