2009-06-23 12 views
5

He desarrollado mi propio Control de informes, que no es más que texto de dibujo en un CDC del DC del cliente de la ventana de control. Tengo la función de impresión para trabajar también. La salida del informe se envía a la impresora directamente. Sin embargo, quiero que el usuario conozca la salida antes de que se imprima realmente el informe.Implementando mi propia vista previa de impresión?

No puedo hacer esto usando la arquitectura de vista previa de impresión de MFC ya que mi proyecto no usa la arquitectura doc/view. ¿Es posible para mí crear una ventana de vista previa de impresión? ¿Cómo maneja MFC esto? ¿Hay algún procesamiento especial que deba realizarse o tener en cuenta al mostrar la salida de la impresora en la pantalla? He leído que MFC usó 2 DC para fines de previsualización de impresión. ¿Debo hacer esto también si estoy buscando una vista previa de impresión personalizada?

¡Su opinión es muy apreciada! tia.

P.S. utilizo Visual Studio 6 y no hay ninguna opción para cambiar esto a una versión más reciente, así como no hay forma de que agregue doc/view support.

Respuesta

0

La vista previa de impresión no es tan especial. Simplemente significa que debe renderizar en la pantalla (o mapa de bits) lo que de otra forma se hubiera renderizado en la impresora DC. Esto significa principalmente usar el tamaño de página y proporcionar un control de UI para la página anterior/siguiente.

0

Había tweeked este code para compilarlo como lib estático. Es para aplicaciones basadas en diálogo.
Si no necesita una funcionalidad especial, funcionará bien para usted.

Tuve que excavar a través de los mecanismos de MFC para agregar funcionalidad adicional pero al final lo dejé caer. Si conoce otros lenguajes de programación, intente encontrar un control de vista previa de impresión en ese idioma, conviértalo en un archivo DLL y úselo desde su aplicación MFC.

Por ejemplo, encontré el control NicePreview para Delphi y funcionó, para mí, bellamente!

0

si logras imprimir tu salida a un archivo en formato RTF y lo muestra en la pantalla, ¿solucionaría esto el problema?

0

Hay una clase CPreviewView en MFC. Tal vez puedas encontrar una forma de instanciarlo sin estructura MDI.

De lo contrario, simplemente puede pintar en la pantalla lo que esté pintando en la impresora DC. Solo recuerda que probablemente necesites escalarlo para obtener una resolución de dpi menor.

Cuestiones relacionadas