Печать с сервера напрямую в Google Cloud Печать на Google App Engine

#python #google-app-engine #cloud #google-cloud-print

#python #google-app-engine #облако #google-cloud-print

Вопрос:

Я пока не знаю, возможно ли это или практично, но если это так: как можно выполнить печать на принтере с использованием Google Cloud Print из приложения python, работающего на Google App Engine?

Для целей примера предположим, что пользователь вошел в учетную запись Google или Google Apps при доступе к приложению App Engine, и эта учетная запись подключена к принтеру, поддерживаемому облаком (например, зарегистрированные принтеры в Google Chrome с cloud print).

Я хотел бы распечатать, например, PDF-файл, который хранится в большом двоичном объекте в GAE. Давайте назовем этот большой объект pdf_contents . Я хотел бы функцию:

 def print_pdf(pdf_contents, printer, print_settings):
    """Prints `pdf_contents` (a blob conforming to the PDF standard) to `printer`
     (a Google Cloud Printer) with the given `print_settings`"""
    # what goes here?
  

Я хотел бы знать, как это сделать, и предпринимал ли кто-нибудь еще какие-либо усилия в этом отношении. Конечно, я не хочу ограничивать печать файлами PDF, но хотел сузить пример.

Спасибо за чтение.

Ответ №1:

Согласно часто задаваемым вопросам по API, он еще не выпущен, но когда он появится, вы сможете печатать из App Engine или любого другого приложения:

Смогут ли продукты, отличные от Google, использовать Google Cloud Print?

Да, мы предложим API для любого приложения, чтобы использовать Google Cloud Print

Ответ №2:

Google Cloud Print в настоящее время не является сервисом печати общего назначения. Со страницы, на которую вы ссылались в своем вопросе:

Откуда я могу печатать?

Мы прилагаем все усилия, чтобы обеспечить интеграцию Google Cloud Print со многими продуктами и сервисами Google, первыми из которых являются Chrome OS, Gmail для мобильных устройств и Google Docs для мобильных устройств.

Таким образом, только устройства Chrome OS (нетбуки) и Gmail / Docs для мобильных устройств могут использовать cloud print в настоящее время.

Ответ №3:

Я написал cloudprinting, чтобы упростить использование Google Cloud Print с Python.

Вот пример:

 from cloudprinting import ClientLoginAuth, submit_job
auth = ClientLoginAuth("username@gmail.com", "password")
submit_job(printer="...", content=("blob.pdf", pdf_contents), auth=auth)
  

Google устарел для авторизации клиента, поэтому вы должны использовать OAuth2 вместо этого.