2013-08-30 45 views
7

Bất kỳ ai từng muốn in không cần giám sát từ trình duyệt đều biết đó không phải là một nhiệm vụ dễ dàng và mặt khác, nó rất hữu ích cho bất kỳ ứng dụng văn phòng nào. Sau đó, Google đến để cứu chúng tôi với GCP.Cài đặt máy in với Google Cloud Print

Vì vậy, tôi đã thiết lập và trong vài phút, tôi đã in tài liệu. Nhưng sau đó tôi muốn áp dụng một số cài đặt cho máy in. Và đây là thời điểm bạn nhận ra tài liệu hoàn toàn thiếu về điều này. Nó thậm chí không giải thích làm thế nào để làm một cái gì đó đơn giản như thiết lập trang để cảnh quan.

documentation chỉ cho biết rằng bạn phải gửi một thông số ở định dạng XPS hoặc PPD. Ngay cả khi bạn có thể truy xuất các khả năng của máy in, bạn nhận ra rằng vì tên của nó cho thấy nó mô tả tất cả các khả năng của máy in chứ không phải cài đặt cho một lệnh in cụ thể.

Vậy làm cách nào để bạn chỉ định cài đặt lệnh in?

Trả lời

16

Trước hết tài liệu GCP không chính xác cho biết bạn có thể truy xuất các khả năng của máy in bằng giao diện dịch vụ/danh sách. Điều đó không hiệu quả. Bạn phải gọi dịch vụ/máy in để trả lại các khả năng của máy in. Các khả năng chỉ đơn giản là một danh sách các JSON mỗi mô tả một tham số máy in và các giá trị có thể có tham số có thể thực hiện. Đôi khi nó có thể chứa một số thông tin bổ sung là tốt. Dưới đây là ví dụ một chiết xuất nhỏ kích thước trang được hỗ trợ bởi HP của tôi:

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

Bằng cách nhìn vào yêu cầu POST mà Chrome gửi đi từ hộp thoại GCP Tôi đã phát hiện ra rằng các dịch vụ/trình không sử dụng một khả năng ở tất cả. Nó thực sự sử dụng tham số được gọi là để chỉ định cài đặt lệnh in. Định dạng của tham số là khá đơn giản, đó là một JSON trông như thế này:

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

Phần đầu của các thông số tương ứng với các thiết lập cơ bản từ hộp thoại in ấn và họ đang khá tự giải thích và các giá trị dễ thay đổi. Các mảng vendor_ticket_item phức tạp hơn một chút. Nó chứa các cặp id/giá trị được mô tả bởi các khả năng của máy in mà chúng tôi đã truy xuất trước đó. Các id sẽ chứa tên của tham số từ các khả năng và giá trị sẽ chứa tên của một trong những hồ sơ trong các tùy chọn tham số, hoặc một giá trị số vv, như mô tả trong khả năng.

Điều đó sẽ chỉ hoạt động tốt với hầu hết các thông số, nhưng nếu bạn gặp khó khăn và không thể tìm ra giá trị chính xác, bạn luôn có thể mở tài liệu mẫu trong Chrome và in. Chọn máy in GCP và sau đó nhấp vào "In bằng hộp thoại Google Cloud Print ..." và từ "Tùy chọn nâng cao", hãy thực hiện cài đặt chính xác mà bạn cần. Sử dụng một cái gì đó như Fiddler trích xuất giá trị của thông số vé từ yêu cầu POST mà Chrome thực hiện cho dịch vụ/cloudprint/submit.

+0

Làm cách nào bạn nắm bắt POST đã được gửi từ hộp thoại GCP? Tôi không thể làm được. Tôi đã sử dụng Proxy, không phải Fiddler, nhưng không có yêu cầu POST nào được gửi khi tôi nhấp vào "In". –

+0

Bạn có thể chọn Khay tiếp giấy không? Nếu vậy, bạn đang sử dụng loại máy in nào? Tôi không thể tìm ra cách để GCP chọn một khay trên máy in của tôi và tôi đang gặp khó khăn trong việc tìm kiếm thông tin về các máy in mà nó có sẵn trên đó. – TimSum

Các vấn đề liên quan