Поделиться через


Основные единицы

Внимание

Современная платформа печати — это предпочтительный способ взаимодействия с принтерами 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-й дюйм должен быть включен в вычисления горизонтального и вертикального главного блока.