Основные единицы
Внимание
Современная платформа печати — это предпочтительный способ взаимодействия с принтерами Windows. Рекомендуется использовать драйвер класса "Входящие" Microsoft IPP вместе с приложениями поддержки печати (PSA), чтобы настроить возможности печати в Windows 10 и 11 для разработки устройств принтера.
Дополнительные сведения см. в статье "Современная платформа печати" и руководство по проектированию приложений поддержки печати.
Большинство принтеров поддерживают команды с различными горизонтальными и вертикальными разрешениями. Например, команда Direct Line Feed для определенного принтера может обеспечить разрешение 1/288-го дюйма, в то время как тот же принтер может поддерживать вертикальное разрешение графики 1/96-го дюйма. Аналогичным образом, этот принтер также может обеспечить горизонтальное разрешение от 1/80, 1/160 и 1/320 дюйма.
Unidrv предоставляет единую систему координат для обработки этих различных разрешений. Единицы в этой системе координат называются главными единицами. Главные единицы принтера выражаются как пара значений (x, y), где x является главной единицей для горизонтального направления и y является главной единицей для вертикального направления.
Чтобы определить основные единицы плоскости, вычислите наименьшее число общих (LCM) знаменателей для фактических разрешений. Используя пример принтера, выполните следующие действия.
Вычислите LCM от 80, 160 и 320, что составляет 320. Таким образом, горизонтальный главный блок составляет 1/320 дюйма.
Вычислите LCM 288 и 96, что составляет 576. Таким образом, вертикальная главная единица составляет 1/576-й дюйм.
Внимание
Оба значения главного блока и вертикальные и горизонтальные разрешения должны быть несколькими из числа закреплений в голове печати (т . е. значение PinsPerPhysPass ). Если это условие не выполнено, возможно, что для определенных размеров бумаги будут производиться дополнительные пустые линии.
Чтобы указать главные единицы принтера, используйте атрибут *MasterUnits . Формат атрибута выглядит следующим образом:
*MasterUnits: PAIR ( X_Denominator , Y_Denominator )
где X_Denominator является LCM знаменателей горизонтальных разрешений, а Y_Denominator — LCM знаменателей для вертикальных разрешений. Следующая запись GPD указывает основные единицы для примера:
*MasterUnits: PAIR(320, 576)
Как правило, значения позиции и размера, используемые в записях файлов GPD, должны быть указаны в основных единицах. Например, чтобы указать, что максимальный размер пользовательской страницы для нашего примера принтера составляет 9 дюймов на 12 дюймов, будет использоваться следующая запись, где будет использоваться 9x320=2880 и 12x576=6912:
*MaxSize: PAIR(2880, 6912)
При вычислении значений для основных единиц используйте только разрешения устройств, которые требуется поддерживать Unidrv. Например, если принтер поддерживает горизонтальные разрешения 1/80-го, 1/96-го, 1/160-го и 1/320-го дюйма, но вы не планируете указывать 1/96-е разрешение дюйма в файле GPD, не включайте его в вычисление LCM.
Если принтер поддерживает команды курсора для перемещения позиции курсора, значения, указанные для атрибутов курсора *XMoveUnit и *YMoveUnit, должны быть включены в вычисления главного урока. Предположим, например, что файл GPD содержит следующие записи:
*XMoveUnit: 60
*YMoveUnit: 60
При вычислении основных единиц этого принтера 1/60-й дюйм должен быть включен в вычисления горизонтального и вертикального главного блока.