2

機能なしでプリンタージョブを送信すると、それは機能して印刷されます:

<?php
$url = "http://www.google.com/cloudprint/submit?printerid=" . $printer_id . &output=json";
        $post = array(
            "printerid" => $printer_id,
            "capabilities" => '',
            "contentType" => "text/plain",
            "title" => $title,
            "content" => $docBytes
        );
        $post = http_build_query($post);
        $ret = $this->processRequest($url, $post, "");
?>

しかし今、私はA7フォーマットの手紙で情報を印刷する必要があります. だから私はいくつかの機能でこのコードを書きました:

<?php
 $url = "http://www.google.com/cloudprint/submit?printerid=" . $printer_id . "&output=json";
        $post = array(
            "printerid" => $printer_id,
            "capabilities" => array('psk:MediaSizeWidth' => '74000', 'psk:MediaSizeHeight' => '104700'), 
            "contentType" => "text/plain",
            "title" => $title,
            "content" => $docBytes
        );

        $post = http_build_query($post);
        $ret = $this->processRequest($url, $post, "");
?>

そして、それは印刷したくありません。ただのエラー。多分誰かがこれを行う正しい方法を知っていますか?

4

2 に答える 2

7

現在、クラウド プリントを使用して Web アプリの無人印刷を実装していますが、これは長い 1 日でした。

Googleダイアログ(https://www.google.com/cloudprint/gadget.html)から印刷するとすべて正常に機能しましたが、APIを介してファイルを送信するとすべてが台無しになりました(サーマルプリンターでレストランのチケットを印刷すると、50cmになりましたトップマージン)

オンラインであらゆる場所を調べた結果、Google プリント ガジェットは純粋な html であり、送信要求を非常に簡単にキャプチャできることに気付きました。開発者ツールを起動し、ダイアログから何かを印刷し、投稿されたデータの「機能」の値を確認するだけです。

紛らわしい部分は、これらの設定が通常の連想配列だけでなく、PPD のような形式である必要があることです。

適切な設定で目的のプリンターから印刷し、「機能」部分をAPIなどにそのままコピーできます。例として、ここに私のものがあります:

{"capabilities":[{"name":"TmtPaperSource","type":"Feature","options":[{"ppd:value":"\"\"","name":"PageFeedCut","displayName":"Page [Feed, Cut]"}]},{"name":"TmtPaperReduction","type":"Feature","options":[{"ppd:value":"\"\"","name":"Both","displayName":"Top & Bottom margins"}]}]}

フォーマットされています:

{
    "capabilities":[
        {
            "name":"TmtPaperSource",
            "type":"Feature",
            "options":[{
                "ppd:value":"\"\"",
                "name":"PageFeedCut",
                "displayName":"Page [Feed, Cut]"
            }]
        },
        {
            "name":"TmtPaperReduction",
            "type":"Feature",
            "options":[{
                "ppd:value":"\"\"",
                "name":"Both",
                "displayName":"Top & Bottom margins"
            }]
        }
    ]
}

最後の注意: 「機能」パラメーターとして全体を渡す必要があります.../submit?capabilities={capabilities:[...]}

于 2013-02-15T20:02:35.007 に答える
0

私が見つけたGCPのドキュメントでは、その機能(印刷形式、コピー数など)はGoogle Cloud Readyプリンターでのみサポートされています!

現時点では、それを行う方法が 1 つしか見つかりませんでした。プリンターの OS ドライバーで設定を一度に構成して、A7 で印刷すると、常に A7 で印刷されます。

于 2012-10-09T08:23:29.243 に答える