まず、GCPのドキュメントには、/ listサービスインターフェイスを使用してプリンタの機能を取得できることが間違って記載されています。それは動作しません。プリンタ機能を返す/ printerサービスを呼び出さなければなりません。この機能は、単にそれぞれのプリンタパラメータとそのパラメータがとりうる値を記述したJSONのリストです。場合によっては追加の情報も含めることができます。ここでは例えば、私のHPでサポートされているページサイズの小さな抜粋です:
"name": "psk:PageMediaSize",
"psf:SelectionType": "psk:PickOne",
"psk:DisplayName": "Paper Size",
"type": "Feature",
"options": [
{
"psk:MediaSizeWidth": "215900",
"name": "psk:NorthAmericaLetter",
"psk:MediaSizeHeight": "279400",
"psk:DisplayName": "Letter"
},
{
"psk:MediaSizeWidth": "215900",
"name": "psk:NorthAmericaLegal",
"psk:MediaSizeHeight": "355600",
"psk:DisplayName": "Legal"
}
]
クロームGCPダイアログから送信POSTリクエストを見ることによって、私は/提出サービスは、機能を使用していないことが判明していますパラメータ。実際には、チケットというパラメータを使用して、印刷ジョブ設定を指定します。パラメータの形式は、それがこのようになりますJSONで、非常に簡単です:
{
"version":"1.0",
"print":{
"color":{"vendor_id":"psk:Color","type":0},
"duplex":{"type":0},
"page_orientation":{"type":1},
"copies":{"copies":1},
"dpi":{"horizontal_dpi":600,"vertical_dpi":600},
"media_size":{"width_microns":148000,"height_microns":210000,"is_continuous_feed":false},
"collate":{"collate":true},
"vendor_ticket_item":[
//Printer specific settings here, from the capabilities:
{"id":"psk:JobInputBin","value":"ns0000:Tray3"},
{"id":"psk:PageICMRenderingIntent","value":"psk:Photographs"},
{"id":"psk:PageMediaType","value":"ns0000:Auto"},
{"id":"psk:JobOutputBin","value":"ns0000:Auto"},
//etc.
]
}
}
パラメータの最初の部分は、印刷ダイアログからの基本的な設定に対応しており、彼らは非常に自己説明と値であり、変更が容易です。 vendor_ticket_item配列は少し複雑です。以前検索したプリンタ機能で記述されたIDと値のペアが含まれています。 IDは能力から、パラメータの名前が含まれていますし、能力で説明したように値は、パラメータオプションでのレコードの1つ、または数値などの名前が含まれています。
ほとんどのパラメータでうまくいくはずですが、問題が発生して正しい値がわからない場合は、常にサンプルドキュメントをChromeで開いて印刷できます。 GCPプリンタを選択し、[Googleクラウドプリントを使用して印刷...]をクリックし、[詳細オプション]から必要な設定を行います。 Fiddlerのようなものを使用すると、POST要求からチケットパラメータの値を抽出します.Cromは/ cloudprint/submitサービスに行います。
GCPダイアログから提出されたPOSTをどのようにキャプチャしましたか?私はそれをすることはできません。私はFiddlerではなくProxyを使用しましたが、「Print」をクリックしたときに送信されたPOST要求はありませんでした。 –
入力トレイを選択できますか?もしそうなら、どのような種類のプリンタを使用していますか?私はGCPに自分のプリンタにトレイを選択させる方法を見つけられず、利用可能なプリンタに関する情報を見つけるのが苦労しています。 – TimSum