直接从服务器打印到Google Cloud Print的Google App Engine

1 投票
3 回答
2081 浏览
提问于 2025-04-16 16:35

我不知道这是否可行或者实际,但如果可以的话:如何从在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,让任何应用都能使用谷歌云打印。

撰写回答