マスター ユニット
重要
最新の印刷プラットフォームは、Windows がプリンターと通信するための推奨手段です。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、 最新の印刷プラットフォーム および 印刷サポート アプリ設計ガイドを参照してください。
ほとんどのプリンターでは、さまざまな水平解像度と垂直解像度のコマンドがサポートされています。 たとえば、特定のプリンターのイミディエイト ライン フィード コマンドでは 1/288 インチの解像度が提供されますが、同じプリンターでは 1/96 インチの垂直方向のグラフィックス解像度がサポートされる場合があります。 同様に、このプリンターは、1/80、1/160、1/320 インチの水平方向の解像度を提供することもできます。
Unidrv は、これらのさまざまな解像度を処理する単一の座標系を提供します。 この座標系の単位はマスター 単位と呼ばれます。 プリンターのマスター ユニットは (x, y) ペアの値として表されます。ここで、 x は水平方向のマスター単位、 y は垂直方向のマスター単位です。
平面のマスター 単位を決定するには、実際の解像度の分母の最も一般的な倍数 (LCM) を計算します。 プリンターの例を使用して、次の操作を行います。
80、160、320 (320) の LCM を計算します。 したがって、水平マスター ユニットは 1/320 インチです。
288 と 96 の LCM である 576 を計算します。 したがって、垂直マスター ユニットは 1/576 インチです。
重要
マスター ユニットの値と垂直方向と水平方向の解像度の両方は、印刷ヘッド内のピンの数の倍数である必要があります (つまり、 PinsPerPhysPass 値)。 この条件が満たされない場合、特定の用紙サイズに対して余分な空白行が生成される可能性があります。
プリンターのマスター単位を指定するには、*MasterUnits 属性を 使用します。 属性の形式は次のとおりです。
*MasterUnits: PAIR ( X_Denominator , Y_Denominator )
ここで 、X_Denominator は水平解像度の分母の LCM、 Y_Denominator は垂直解像度の分母の LCM です。 次の GPD エントリは、例のマスター ユニットを指定します。
*MasterUnits: PAIR(320, 576)
一般に、GPD ファイル エントリで使用される位置とサイズの値は、マスター 単位で指定する必要があります。 たとえば、この例のプリンターの最大カスタム ページ サイズが 9 インチ x 12 インチであることを指定するには、次のエントリを使用します。ここでは、9x320=2880 と 12x576=6912 です。
*MaxSize: PAIR(2880, 6912)
マスター ユニットの値を計算する場合は、Unidrv でサポートするデバイス解像度のみを使用します。 たとえば、プリンターが 1/80、1/96、1/160、1/320 インチの水平方向の解像度をサポートしているが、GPD ファイル内で 1/96 分の 1 インチの解像度を指定しない場合は、LCM 計算に含めないでください。
プリンターがカーソル位置を移動するための カーソル コマンド をサポートしている場合は、*XMoveUnit および *YMoveUnitカーソル属性 に指定された値をマスター単位の計算に含める必要があります。 たとえば、GPD ファイルに次のエントリが含まれているとします。
*XMoveUnit: 60
*YMoveUnit: 60
このプリンターのマスター ユニットを計算するときは、1/60 インチを水平方向と垂直方向のマスター ユニットの計算に含める必要があります。