para nitro instalar imprimir impresora gratis creator como agregar virtual printing

nitro - instalar impresora virtual pdf



Controlador de impresora virtual para Windows (4)

¿Puedes ayudarme con las siguientes preguntas ...

  • Si necesito una impresora virtual que convierta una secuencia de PostScript a un formato diferente, ¿tengo que implementar una impresora virtual desde cero o implementar un complemento de representación?
  • El complemento de representación parece admitir solo ciertas personalizaciones. Además, los datos invariablemente van a la cola de impresión que no es necesaria en este caso.
  • Si implemento un controlador de impresora virtual, ¿reemplaza por completo el controlador PostScript de Microsoft o el controlador universal de Microsoft?
  • Dado que mi controlador es virtual, ¿Importa si escribo un documento compatible con PostScript o uno compatible con Universal Driver?
  • ¿Algún otro método para convertir un documento impreso a un formato de documento personalizado además de implementar un controlador de impresora virtual? ¿Puedo conectarme como un monitor de puerto o algo así? Por lo que pude entender, supongo que no.

No estoy seguro de que entiendo completamente. ¿Tiene una aplicación que produce Postscript y desea convertir eso a otra cosa? Si la aplicación emite los datos de ''listo para imprimir'', entonces un nuevo controlador de impresora no ayudará ya que la ''cola / controlador'' es solo una forma de obtener los datos en la impresora y no algo que esté creando el archivo de salida.

Es posible que sea mejor mirar algo como: Redmon

Esto puede tomar el resultado y generar un nuevo proceso. La idea sería que lo haga salir de Postscript a un archivo y luego ejecute algún .exe de consola que cree en su contra.

Solo un pensamiento.


Una vez más, no estoy seguro de qué camino está haciendo esto, pero ghostscript es la forma más sencilla de convertir una salida PS en cualquier otro formato. También es bastante fácil escribir su propio formato de salida para ghostscript.

Todo esto sucede en el nivel de la aplicación, no es necesario escribir un controlador.


Lo que necesitas es un monitor de puerto. Puede crear una impresora virtual utilizando el controlador Postscript de Microsoft que se encuentra en el WDK. No necesita proporcionar ningún código para esta parte, solo un archivo INF y PPD para describir su impresora virtual. Una vez que tenga eso funcionando e instalado, los usuarios verán su impresora virtual cuando impriman desde una aplicación. Esta impresora producirá una secuencia de Postscript como cualquier impresora PostScript estándar, que luego se enviará al monitor del puerto de la impresora.

Ahora agregue un monitor de puerto para manejar la conversión de la secuencia Postscript al formato que necesite. Los monitores de puerto son considerablemente más fáciles de manejar que los controladores de impresión.

EDITAR: Andy señala en los comentarios que los controladores de impresión v4 (es decir, Win8) no admiten monitores de puertos personalizados. Sin embargo, los controladores v3 seguirán funcionando en Win8.


Sé que esto es viejo, pero estas respuestas me habrían ayudado hace un par de meses, cuando comencé este proyecto. Pasé mucho tiempo creando un monitor de puerto, solo para encontrar un método mucho más fácil al final (ver el enlace WritePrinter a continuación).

Si necesito una impresora virtual que convierta una secuencia de PostScript a un formato diferente, ¿tengo que implementar una impresora virtual desde cero o implementar un complemento de representación?

Rendering plug-in es lo que quieres.

El complemento de representación parece admitir solo ciertas personalizaciones.

Correcto: tendrás que decidir si es suficiente para ti.

Además, los datos invariablemente van a la cola de impresión que no es necesaria en este caso.

Esto no debería ser un problema.

Si implemento un controlador de impresora virtual, ¿reemplaza por completo el controlador PostScript de Microsoft o el controlador universal de Microsoft?

Si implementa un complemento de representación, no reemplaza los controladores PS / Uni. Los controladores PS / Uni son, de hecho, utilizados por un gran número (¿quizás el 90%?) De todos los "controladores de impresora". Los fabricantes de equipos originales que fabrican impresoras no desean escribir sus propios controladores, por lo que utilizan el diseño del controlador PS / Uni: algunos crean plug-ins de interfaz de usuario, algunos complementos de representación, algunos, y ninguno.

Dado que mi controlador es virtual, ¿Importa si escribo un documento compatible con PostScript o uno compatible con Universal Driver?

Depende del formato en que desee que ingresen los datos. Si desea un formato de mapa de bits, un controlador Uni es mejor, si desea un formato PostScript, la PS es mejor. Si desea datos para cada línea dibujada, salida de texto y otras operaciones de GDI, entonces cualquiera de las dos está bien.

¿Algún otro método para convertir un documento impreso a un formato de documento personalizado además de implementar un controlador de impresora virtual? ¿Puedo conectarme como un monitor de puerto o algo así? Por lo que pude entender, supongo que no.

La mayoría de las personas que desean acceso sin formato a los datos de PostScript, generalmente para usar GhostScript para convertir a PDF u otro formato, usan un monitor de puerto para hacer esto. Por ejemplo, la Impresora Virtual PDF que Adobe envía con la versión completa de Acrobat (Writer), utiliza un monitor de puerto y también un complemento de representación y un complemento de interfaz de usuario para el controlador PSCRIPT5.

El problema con un monitor de puerto es que no se ejecuta en el contexto del usuario, no en el contexto de la aplicación / proceso que realiza la impresión. Se ejecuta en el contexto de la cola de impresión y requiere muchos intentos para determinar qué usuario / sesión está imprimiendo.

Si desea datos de mapa de bits, por ejemplo, para guardar como JPG / BMP / PNG, simplemente cree un complemento de representación para el controlador de impresora universal y acceda / guarde los datos de mapa de bits dentro de IPrintOemUni :: FilterGraphics .

Si desea datos PostScript, para usar con GhostScript (u otra biblioteca, o su propio código) para convertir a PDF u otros formatos, simplemente cree un complemento de representación para el controlador PSCRIPT5 y acceda / guarde los datos de la PS dentro de IPrintOemUni2: : WritePrinter .

En cualquier caso, quiere un plug-in de representación. Si desea mostrar fácilmente una IU mientras imprime, y desea que su código se ejecute en el mismo contexto que el usuario, y no el servicio de cola de impresión, asegúrese de configurar su impresora para que imprima directamente en la impresora: pase por alto la cola de impresión. Si usa AddPrinter para instalar su impresora, usaría el indicador PRINTER_ATTRIBUTE_DIRECT .