2013-08-30 17 views
7

Każdy, kto kiedykolwiek chciał drukować bez nadzoru z przeglądarki, wie, że nie jest to łatwe zadanie, a z drugiej strony jest bardzo przydatny w przypadku każdej aplikacji back-office. Potem przyszedł Google, aby nas uratować dzięki GCP.Ustawienia drukarki za pomocą Google Cloud Print

Tak więc ustawiłem i po kilku minutach wydrukowałem dokument. Ale potem chciałem zastosować niektóre ustawienia do drukarki. I właśnie w tym momencie zdajesz sobie sprawę, że brakuje w tym dokumentacji. Nie jest nawet wyjaśnione, jak zrobić coś tak prostego, jak ustawienie strony na krajobraz.

documentation mówi tylko, że trzeba wysłać zakresie zdolności parametr w formacie XPS lub PPD. Nawet jeśli jesteś w stanie odzyskać możliwości drukarki, zdajesz sobie sprawę, że jak sama nazwa wskazuje, opisuje wszystkie możliwości drukarki, a nie ustawienia dla konkretnego zadania drukowania.

Jak właściwie określić ustawienia zleceń drukowania?

Odpowiedz

16

Przede wszystkim dokumentacja GCP nieprawidłowo stwierdza, że ​​można odzyskać funkcje drukarki za pomocą interfejsu usługi/list. To nie działa. Musisz zadzwonić do usługi/printer, która zwraca funkcje drukarki. Możliwości są po prostu listą JSON-ów, z których każdy opisuje parametr drukarki i możliwe wartości, które może przyjąć parametr. Czasami może zawierać również dodatkowe informacje. Oto na przykład mały wyciąg z rozmiarów stron poparte moim 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" 
    } 
    ] 

Patrząc na żądanie POST, że Chrome wysyła z okna GCP I odkryli, że usługa/złożyć nie korzysta z możliwości parametr w ogóle. W rzeczywistości używa parametru o nazwie bilet, aby określić ustawienia zleceń drukowania. Format parametru jest dość proste, to jest JSON, który wygląda tak:

{ 
"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. 
    ] 
    } 
} 

Pierwsza część parametrów odpowiada podstawowe ustawienia w oknie dialogowym Drukuj i są one dość oczywiste, a wartości są łatwe do zmiany. Macierz vendor_ticket_item jest nieco bardziej skomplikowana. Zawiera pary id/value opisane przez możliwości drukarki, które pobraliśmy wcześniej. id będzie zawierać nazwę parametru z możliwościami i wartościbędzie zawierać nazwę jednego z zapisów w opcjach parametrów lub wartości liczbowej etc, jak to opisano w możliwościach.

To powinno działać dobrze dla większości parametrów, ale jeśli utkniesz i nie będziesz w stanie określić prawidłowych wartości, zawsze możesz otworzyć przykładowy dokument w Chrome i wydrukować go. Wybierz drukarkę GCP, a następnie kliknij "Drukuj przy użyciu okna dialogowego Google Cloud Print ...", a następnie w sekcji "Opcje zaawansowane" określ dokładnie potrzebne ustawienia. Używając czegoś takiego jak Fiddler, wyodrębnij wartość parametru biletu z żądania POST, a Chrome wykona usługę/cloudprint/submit.

+0

W jaki sposób przechwycono POST przesłany z okna dialogowego GCP? Nie mogę tego zrobić. Użyłem Proxy, a nie Fiddlera, ale nie było żadnego żądania POST, które zostało przesłane, gdy kliknąłem "Drukuj". –

+0

Czy można wybrać tacę wejściową? Jeśli tak, jakiego rodzaju drukarki używasz? Nie wiem, w jaki sposób GCP wybiera tacę na mojej drukarce i mam problem ze znalezieniem informacji o drukarkach, które MOGĄ być dostępne. – TimSum

Powiązane problemy