Que tal, Estuve probando con el método GetFrameCount y ya puedo conocer el
número de hojas del archivo .tiff, el detalle ahora es que como el evento
PrintPage se ejecuta una vez por página entonces llevo un contador de las
páginas impresas; sin embargo por ejemplo si el archivo .tiff tiene 2 hojas y
el evento PrintPage se ejecuta dos veces, Siempre me imprime la primera hoja
dos veces según el valor de GetFrameCount. Yo pretendo que me imprima todas
las hojas que tiene el archivo, como podría lograr esto ??
mi código quedo así:
private void instancePrintDocument_PrintPage(object sender,
PrintPageEventArgs ev)
{
string message;
System.Drawing.Image newImage = null;
// Crear Imagen.
newImage = System.Drawing.Image.FromFile("ALGUN ARCHIVO .TIFF");
// Dibujar una imagen en la pantalla.
ev.Graphics.DrawImage(newImage, ev.Graphics.VisibleClipBounds);
//Incrementar Página Impresa.
paginaImpresa += 1; //Esta es una variable global
//Identificar si hay que imprimir una página adicional.
if ( paginaImpresa < numeroPaginasArchivo ) //numeroPaginaArchivo es
global.
ev.HasMorePages = true;
else
ev.HasMorePages = false;
}
"Unai Zorrilla Castro" escribió:
Es sencillo obtner el numero de paginas del .tiff usando la clase Bitmap de
System.Drawing, basta crear el objeto con el path del tiff en el constructor
e invocar al método GetFrameCount con el parametro FrameDimension.Page
Saludos
Unai Zorrilla Castro
"JPablo" escribió:
> Que tal Grupo,
>
> Estoy haciendo una aplicación windows c# que imprime documentos .tiff y estoy
> utilizando la clase PrintDocument. El detalle es que si el .tiff tiene más de
> una hoja solo me imprime la Primera. Como me puedo conocer cuantas páginas
> tiene el archivo .tiff y como configurar para enviar todas las páginas a
> impresión ??
>
> O hay alguna otra forma de enviar a impresión el archivo ??
>
> Esto es parte de la Implementación:
>
> De antemano gracias
> Saludos
>
> //Preparar documento para impresión.
> instancePrintDocument = new System.Drawing.Printing.PrintDocument();
>
> //Nombre de la Impresora.
>
> instancePrintDocument.PrinterSettings.PrinterName =
> System.Configuration.ConfigurationSettings.AppSettings["MAS.PrinterName"].ToString();
>
> //Configurar Nombre del Documento a Imprimir.
> instancePrintDocument.DocumentName = "ALGUN NOMBRE";
>
> //Configurar Evento de Impresión.
> instancePrintDocument.PrintPage += new
> PrintPageEventHandler(this.instancePrintDocument_PrintPage);
>
> //Configurar Evento que indica cuando se ha terminado la impresión del
> documento.
> instancePrintDocument.EndPrint += new
> PrintEventHandler(this.instancePrintDocument_EndPrintPage);
>
> //Enviar documento a Impresión.
> instancePrintDocument.Print();
>
>
> private void instancePrintDocument_PrintPage(object sender,
> PrintPageEventArgs ev)
> {
> string message;
> System.Drawing.Image newImage = null;
>
> // Crear Imagen.
> newImage = System.Drawing.Image.FromFile("ALGUN ARCHIVO .TIFF");
>
> // Crear coordenadas para la esquina superior izquierda de la imagen.
> int x = 0;
> int y = 0;
>
> // Dibujar una imagen en la pantalla.
ev.Graphics.DrawImageUnscaled(newImage, x, y);
}
Leer las respuestas