C/Visual C - Problemas al imprimir

 
Vista:

Problemas al imprimir

Publicado por ialtza (3 intervenciones) el 20/02/2002 18:29:22
He hecho un programilla utilizando el MFC de Visual C++ 6.0, y ahora quiero que imprima también sobre papel. El programa es muy simple y todo lo que imprime en pantalla es texto utilizando la función TextOut de la clase CDC.

Tengo fundamentalmente dos problemas. Uno es que al imprimir sobre el papel las líneas se solapan y no se logra leer nada. Y el otro es que sólo imprime lo que entra en una hoja, esto es, va escribiendo las líneas de texto hasta llegar al final de la página y todo lo demás se pierde, no pasa de página.

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Problemas al imprimir

Publicado por Josep (29 intervenciones) el 20/02/2002 22:28:15
1) Lineas solapadas
Cuando un CDC (textOut) imprime cualquier elemento grafico (texto, linia, rectángulo,...) utiliza un sistema de referencia. Pero existen como mínimo 3 sistemas de referencia (cartesiano):
- Para todos ellos, el origen es la esquina superior izquierda.
MM_TEXT : 1u = 1 px
los valores de X y de Y tienen que ser positivos.
MM_LOMETRIC : 1 u = 0.1 mm
los valores de X positivos y de Y negativos. (eje Y girado)
MM_HIMETRIC : 1 u = 0.01 mm
los valores de X positivos y de Y negativos. (eje Y girado)

2) Sólo imprime lo que entra en una hoja
Esto ocurre porque debes indicar-le tu mismo cuando y qué tiene que imprimir en cada página. El siguiente código permite imprimir sin usar el asistente:

void CPrgView::imprime()
{ CPrintDialog dlgImprimir(FALSE,PD_ALLPAGES,this);
if ( dlgImprimir.DoModal()==IDOK )
{ CDC dc;
dc.Attach(dlgImprimir.GetPrinterDC());
DOCINFO docImprime;
docImprime.cbSize=sizeof(docImprime);
docImprime.lpszDocName="TEST IMPRES";
docImprime.lpszOutput=NULL;
docImprime.lpszDatatype=NULL;
docImprime.fwType=NULL;
if ( dc.StartDoc(&docImprime) >=0 )
{ dc.StartPage();
queImprimir(&dc);
dc.EndPage();
dc.EndDoc();
}
dc.DeleteDC();
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar