2009-06-19 24 views
18

Quiero crear un controlador de impresora virtual para Windows. ¿Donde debería empezar? El WDK tiene algunos ejemplos de controladores de impresión, pero no puedo usar nada. MSDN no parece ser muy útil.¿Cómo crear una impresora virtual en Windows?

Hay muchas impresoras virtuales para Windows (la mayoría generan PDF), ¿cómo lo hacen?

Se agradecen todos los enlaces a la documentación que parezco extraño.

Gracias.

+2

Usted puede obtener más ayuda si dicho cuál es el problema que tiene que no es abordado por los conductores de la muestra. –

+1

Son un buen punto de partida si desea desarrollar controladores "reales", pero no son tan útiles si todo lo que necesita son controladores "virtuales", no basados ​​en hardware. Sin embargo, la muestra de mapa de bits es la más útil. – Terminus

Respuesta

11

Cuando lo hice (que hace unos 12 años) comencé con la muestra del controlador de postscript, reemplacé todas las cosas específicas de postscript (en mi caso, para escribir en un mapa de bits en lugar de generar comandos PostScript).

También escribí un monitor de impresión personalizado (el controlador escribe en la cola de impresión, que escribe en un monitor): mi monitor escribió en un archivo en lugar de, p. al puerto paralelo.

Sin embargo, la arquitectura del controlador de la impresora y/o el conjunto de controladores de muestra pueden haber cambiado desde entonces.

+0

Espacio de usuario solo después de Vista: necesito compatibilidad con Windows 2000. – Terminus

2

Uno de los conductores que mencionas es de código abierto (GPL), tal vez se podría explorar su fuente o adaptarlo: http://www.pdfforge.org/products/pdfcreator/download

+0

Desafortunadamente (la mayor parte?) Está escrito en Visual Basic. Si hubiera uno escrito en C/C++ ... :-). – Terminus

+0

Ese puede no ser el controlador de la impresora; sus directorios como "Versión 0.9.8 \ Impresora \ Adobe \ WinXP2k3-x86 \ English" están vacíos, hasta donde puedo ver, a excepción de un archivo Léame. Tal vez el VB es una especie de interfaz de GhostScript, disponible por separado. – ChrisW

+0

El contenido de "Versión 0.9.8 \ Impresora \ Adobe \ WinXP2k3-x86 \ English \ readme.txt" es "psui.dll", "pscript5.dll" y "pscript.hlp"; estos nombres de archivo me sugieren que estos archivos de controlador también se crearon a partir del controlador de ejemplo de postscript. – ChrisW

3

Usted puede mirar para el desarrollo 'Minicontrolador' en el de Microsoft (Microsoft MDT) , eso podría ayudar dependiendo de tus necesidades exactas. Si el puerto tiene que tratar (es decir: va a tomar los datos de un controlador de impresora existente y desea procesar), puede consultar el código fuente de RedMon. No es compatible con Vista/Win7, pero podría apuntarle en la dirección correcta.

+1

Sí, la parte 'virtual' (no de hardware) es el monitor, no el controlador. El controlador controla el formato de la salida (no la ubicación/destino de la salida) – ChrisW

3
+1

Bueno, ya tengo ese libro. El problema no es desarrollar controladores, el problema es encontrar información específica relevante para desarrollar el tipo de controladores de impresora virtual que quiero. – Terminus

+0

El enlace # 4 ahora está roto, lamentablemente. ¿Qué fue eso? –

2

Alguien más ya mencionado PDFCreator. Aquí hay un enlace más específico a su código que está creando la impresora, el puerto y el monitor. A pesar de estar en VB, puedo seguirlo como alguien más acostumbrado a C++, así que supongo que tú también puedes. modPrinter.bas funciona la pierna. modMain.bas, desde aproximadamente la línea 28 en adelante, llama a modPrinter.bas.

Cuestiones relacionadas