直接从服务器打印到Google Cloud Print的Google App Engine
我不知道这是否可行或者实际,但如果可以的话:如何从在Google App Engine上运行的Python应用程序中,通过Google Cloud Print打印到打印机呢?
为了举个例子,假设用户在访问App Engine应用时已经登录了Google或Google Apps账户,并且这个账户连接了一个支持云打印的打印机(比如在Google Chrome中注册的打印机)。
我想打印一个存储在GAE中的PDF文件。我们称这个文件为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文件上,只是想先缩小一下例子。
谢谢你的阅读。
3 个回答
1
我写了一个叫做 cloudprinting 的工具,目的是为了让用Python连接谷歌云打印变得更简单。
这里有个例子:
from cloudprinting import ClientLoginAuth, submit_job
auth = ClientLoginAuth("username@gmail.com", "password")
submit_job(printer="...", content=("blob.pdf", pdf_contents), auth=auth)
谷歌已经不再支持 客户端登录认证,所以你应该改用 OAuth2
这种方式。
1
谷歌云打印目前并不是一个通用的打印服务。从你在问题中提到的页面来看:
我可以从哪里打印?
我们正在努力让谷歌云打印与许多谷歌的产品和服务整合,目前首批支持的有Chrome操作系统、移动版Gmail和移动版Google文档。
所以现在只有使用Chrome操作系统的设备(比如上网本)和移动版的Gmail及Google文档才能使用云打印。
2
根据API常见问题解答,这个功能还没有推出,但等推出后,你应该可以从App Engine应用或者其他任何应用进行打印:
非谷歌的产品能使用谷歌云打印吗?
可以,我们会提供一个API,让任何应用都能使用谷歌云打印。