Unidades maestras
Importante
La plataforma de impresión moderna es el medio preferido de Windows para comunicarse con impresoras. Se recomienda usar el controlador de clase de bandeja de entrada IPP de Microsoft, junto con aplicaciones de soporte técnico de impresión (PSA), para personalizar la experiencia de impresión en Windows 10 y 11 para el desarrollo de dispositivos de impresora.
Para obtener más información, consulte Plataforma de impresión moderna y la Guía de diseño de aplicaciones para compatibilidad con impresión.
La mayoría de las impresoras admiten comandos con una variedad de resoluciones horizontales y verticales. Por ejemplo, el comando Avance de línea inmediata para una impresora determinada podría proporcionar una resolución de 1/288 de pulgada, mientras que la misma impresora podría admitir una resolución de gráficos verticales de 1/96 de pulgada. Del mismo modo, esta impresora también puede proporcionar resoluciones horizontales de 1/80, 1/160 y 1/320 de una pulgada.
Unidrv proporciona un único sistema de coordenadas para controlar estas diversas resoluciones. Las unidades de este sistema de coordenadas se denominan unidades maestras. Las unidades maestras de una impresora se expresan como un par de valores (x, y), donde x es la unidad maestra para la dirección horizontal e y es la unidad maestra para la dirección vertical.
Para determinar las unidades maestras de un plano, calcule el múltiplo menos común (LCM) de los denominadores para las resoluciones reales. Con la impresora de ejemplo, haría lo siguiente:
Calcule el LCM de 80, 160 y 320, que es 320. Por lo tanto, la unidad maestra horizontal es de 1/320 de pulgada.
Calcule el LCM de 288 y 96, que es 576. Por lo tanto, la unidad maestra vertical es de 1/576 de pulgada.
Importante
Los valores de unidad maestra y las resoluciones verticales y horizontales deben ser un múltiplo del número de patillas del cabezal de impresión (es decir, el valor PinsPerPhysPass). Si no se cumple esta condición, es posible que se produzcan líneas en blanco adicionales para determinados tamaños de papel.
Para especificar las unidades maestras de una impresora, use el atributo *MasterUnits. El formato del atributo es el siguiente:
*MasterUnits: PAIR ( X_Denominator , Y_Denominator )
donde X_Denominator es el LCM de los denominadores para las resoluciones horizontales e Y_Denominator es el LCM de los denominadores para las resoluciones verticales. La siguiente entrada GPD especifica las unidades maestras del ejemplo:
*MasterUnits: PAIR(320, 576)
Por lo general, los valores de posición y tamaño utilizados en las entradas del archivo GPD deben especificarse en unidades maestras. Por ejemplo, para especificar que el tamaño de página personalizado máximo para nuestra impresora de ejemplo es de 9 por 12 pulgadas, se usaría la siguiente entrada, donde 9x320=2880 y 12x576=6912:
*MaxSize: PAIR(2880, 6912)
Al calcular los valores de las unidades maestras, use solo las resoluciones del dispositivo que desea que Unidrv admita. Por ejemplo, si una impresora admite resoluciones horizontales de 1/80, 1/96, 1/160 y 1/320 de pulgada, pero no tiene intención de especificar la resolución 1/96 de una pulgada dentro del archivo GPD, no la incluya en el cálculo LCM.
Si la impresora admite comandos de cursor para mover la posición del cursor, los valores especificados para los atributos de cursor *XMoveUnit e *YMoveUnit deben incluirse en los cálculos de la unidad maestra. Supongamos, por ejemplo, que un archivo GPD contiene las siguientes entradas:
*XMoveUnit: 60
*YMoveUnit: 60
Al calcular las unidades maestras de esta impresora, la 1/60 de una pulgada debe incluirse en los cálculos de la unidad maestra horizontal y vertical.