2013-08-30 15 views
7

ブラウザからの無人印刷をしたいと思ったことは、それが簡単な作業ではなく、逆にバックオフィスアプリケーションにとって非常に有用なことだと分かっています。それから、GoogleはGCPを私たちに救うために来た。Googleクラウドプリントでのプリンタ設定

私はそれをセットアップし、数分後にドキュメントを印刷しました。しかし、私はいくつかの設定をプリンタに適用したかったのです。そして、これはドキュメントが完全にこれに欠けていることをあなたが理解する瞬間です。ページをランドスケープに設定するなどの単純な操作を行う方法についても説明されていません。

documentationは、の能力パラメータをXPSまたはPPD形式で送信する必要があることのみを示しています。プリンタの機能を取得できたとしても、その名前が示すとおり、特定の印刷ジョブの設定ではなく、すべてのプリンタ機能が記述されています。

実際に印刷ジョブ設定をどのように指定しますか?

答えて

16

まず、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サービスに行います。

+0

GCPダイアログから提出されたPOSTをどのようにキャプチャしましたか?私はそれをすることはできません。私はFiddlerではなくProxyを使用しましたが、「Print」をクリックしたときに送信されたPOST要求はありませんでした。 –

+0

入力トレイを選択できますか?もしそうなら、どのような種類のプリンタを使用していますか?私はGCPに自分のプリンタにトレイを選択させる方法を見つけられず、利用可能なプリンタに関する情報を見つけるのが苦労しています。 – TimSum

関連する問題