image/vnd.star.pngの拡張パラメーター

ベンダー独自の”image/vnd.star.png”メディアタイプは拡張パラメーターを有しています。
サーバー開発者によって予期しないimage/PNGに対する制限を課すクライアントは、”image/vnd.star.png”メディアタイプを実装しています。
これは、標準の PNG ファイル形式と完全互換となりますが、クライアントにて許容できるビット深度やサイズなどの制限をサーバーに通知するために使用されます。
一般的に、圧縮されていない比較的大きな24bitビットマップに対する、クライアントデバイスでのRAM容量制限の中で許容されるサイズをサーバーに通知します。
クライアントから印刷ジョブを要求する際のGETクエリ文字列にて、サポートされるメディアタイプをサーバーに通知するとき、併せてメディアタイプのパラメーターが提供されます。
このメディアタイプを認識するサーバーは、送られてくる印刷ジョブが扱えるかどうかクライアントが判断できるようにするため、印刷ジョブの利用可能な状態なときのサーバーからのPOSTレスポンスにて印刷ジョブのサイズを通知することができます。
例えば、300mmまでのimage/vnd.star.png印刷ジョブが印刷可能なプリンターの場合に、300mm以上の印刷ジョブをサーバーからジョブのサイズも併せてクライアントに通知すると、そのメディアタイプの印刷ジョブはサポートできないため別の代替のメディアタイプのジョブを要求するようになります。
(サーバーからサイズ付き”image/vnd.star.png”と”text/plain”のメディアタイプのジョブを通知している場合は、クライアントは”text/plain”のジョブを要求します)

クライアントからサーバーへのGETリクエスト

クライアントが”image/vnd.star.png”メディアタイプを使って印刷ジョブのGET要求を行う際に次のパラメーターが提供されます。

Parameter

Description

mono_len=<length>

クライアントがサポートできるモノクロ PNG 画像の最大ピクセル縦長(*)をサーバーに通知します。
*この高さはメモリ制限に基づいているもので、画像の幅についてはプリンターの印字領域のドット幅に一致すると想定しています。

24bpp_len=<length>

クライアントがサポートできる 24bit カラーPNG 画像の最大ピクセル縦長(*)をサーバーに通知します。
*この高さはメモリ制限に基づいているもので、画像の幅についてはプリンターの印字領域のドット幅に一致すると想定しています。

GET送信リクエストサンプル (mC-Print2/3)

[http/https]://[cloudprntURL]?uid=<printer ID>&type=image/vnd.star.png;mono_len=<length>;24bpp_len=<length>&mac=<mac address>

サーバーからクライアントへのPOSTレスポンス

サーバーが”jobReady=true”フィールドをPOSTレスポンスにて返答するとき、提供可能なメディアタイプのリストも”mediaTypes”フィールドを使って提供しなければなりません。
このとき、”image/vnd.star.png”には提供可能な実際のジョブサイズと形式を記載するために、次のパラメーターを含めます。

Parameter

Description

mono_len=<length>

クライアントに印刷ジョブは<length>ピクセル長であるモノクロ PNG 画像が提供されることを通知します。

24bpp_len=<length>

クライアントに印刷ジョブは<length>ピクセル長である 24bit カラーPNG 画像が提供されることを通知します。

サーバーは一方か両方のパラメーターを提供することができ、モノクロのみもしくはモノクロか24bitカラーの両方の形式で提供できることをクライアントに示すことができます。
サーバーからのPOSTレスポンス例(800ピクセル(ドット)長のモノクロPNG画像形式およびテキスト形式):
{
    "jobReady": true,
    "mediaTypes": [ "image/vnd.star.png;mono_len=800", "image/png", "text/plain" ]
}
上記の場合、mC-Print3ではモノクロPNG画像形式の条件は制限内に収まっているため利用可能な印刷ジョブとして認識されます。
そのため下記クエリパラメーターにてGET要求がクライアントから発行されます:
?type=image/vnd.star.png;mono_len=2400;24bpp_len=400&mac=00:00:00:00:00:00
サーバーがこの上記GET要求に対して応答するとき、MIME/Content type を”image/vnd.star.png”または“image/png”と指定することができます。
(この印刷ジョブは、PNG 画像形式に準拠しておりPNG画像サイズもクライアントの制限内に収まっていると想定します)