ブロック マクロ
重要
Windows でプリンターとの通信手段として推奨されるのは、最新の印刷プラットフォームです。 プリンターデバイス開発におけるWindows 10および11での印刷体験をカスタマイズするために、MicrosoftのIPPインボックスクラスドライバーとPrint Support Apps (PSA)の使用を推奨します。
詳細については、最新の印刷プラットフォームに関する記事および「印刷サポート アプリの設計ガイド」を参照してください 。
ブロック マクロは、GPD ファイルに繰り返し挿入する一連の GPD ファイル エントリを区切るために使用されます。 機能や省略可能なステートメント、属性仕様、値マクロやその他のブロック マクロへの参照など、任意のエントリの種類をブロック マクロ定義に含めることができます。
ブロック マクロの使用には以下のルールが適用されます。
GPD ファイル内のブロック マクロ定義は、その値への参照の前に配置する必要があります。
ルート レベルで定義された (つまり中かっこ内ではない) ブロック マクロは、ブロック マクロを定義すると、定義した GPD ファイルを通して利用できるようになります。 それ以外の場合、ブロック マクロの範囲は、その定義を含む左中かっこと右中かっこのセットとなります。
ブロック マクロ定義には、追加のブロック マクロと値マクロの定義を含めることができます。
ブロック マクロ定義は、以前に定義した他のブロック マクロと値マクロを参照できますが、それ自体を参照することはできません。
ブロック マクロは引数を受け付けません。
中かっこがマクロ本体に含まれている場合は、ペアにする必要があります (つまり、左右の中かっこの数が等しい必要があります)。
同じ名前のブロック マクロを 2 つ作成した場合、GPD パーサーが 2 つ目の定義に出会うまで、最初の定義が有効になります。 そして、2番目の定義が最初の定義に取って代わる。 2つ目の定義の範囲が終了すれば、1つ目の定義が復活する。
ブロック マクロ形式
GPD ファイルでブロック マクロを定義するには、次の形式を使用します。
*BlockMacro: BlockMacroName {BlockMacroBody}
ここで、BlockMacroName は一意の名前で、BlockMacroBody は 1 つ以上の GPD ファイル エントリのセットです。 BlockMacroBody に中かっこが含まれている場合は、左中かっこと右中かっこ ({, }) の数が等しい必要があります。
たとえば、次のように定義されている EnvelopeDefaults という名前のブロック マクロを定義できます。
*BlockMacro: EnvelopeDefaults
{
*PrintableArea: PAIR(4646, 6738)
*PrintableOrigin: PAIR(150, 150)
*RotateSize: TRUE
}
ブロック マクロの参照
ブロック マクロを参照するには、次の形式を使用します。
*InsertBlock: =BlockMacroName
ここで、ValueMacroName は、マクロを定義する *BlockMacro エントリで以前に指定された一意の名前です。
たとえば、オプション仕様の中の EnvelopeDefaults マクロを参照するには、次のエントリを使用します。
*Option: Env9
{
*InsertBlock: =EnvelopeDefaults
}