4

我正在尝试制作一个在为客户端生成 PDF 后自动打印 PDF 的应用程序。(根据他的要求)我启动并运行了一台云打印机,如果我尝试将它与 chrome 之类的东西一起使用,它工作得非常好。

PHP 的所有库都非常过时(最多 4 年),其中大多数已完全损坏或几乎没有提供有关如何使用它们的文档,尝试使用 google 自己的文档更是一场噩梦

我能想到的最好的办法就是使用这个库:yasirsiddiqui/php-google-cloud-print,主要是因为它是我唯一能真正弄清楚如何使用它的库。

但是,当我使用它提交打印作业时,帐户所有者(我)会收到一封警告电子邮件,提示有人可疑试图登录他们的帐户并且已被阻止。

有谁知道是否有(工作)库可以使用,或者是否有我可以使用system()exec()使用的命令行替代方案(首选)?

注意:我对 python 的了解为 0%,并且使用 JavaScript 提交这些作业不是一种选择,因为不允许最终用户更改文档。


更新 [2015/09/08]:出于某种原因,即使使用 OAuth2,Google 也不允许通过某些帐户进行打印,解决此问题的快速方法是创建一个全新的帐户并使用该帐户进行打印。

4

2 回答 2

8

我已经更新了使用 Google OAuth2 的代码,现在不会有任何与帐户被阻止或安全风险等相关的问题。这是更新代码的 url https://github.com/yasirsiddiqui/php-google-cloud-print

于 2015-02-17T16:14:35.507 回答
2

我从未听说过 Google Cloud 打印,但它似乎只是一个简单的 REST API,在这种情况下,您不需要库来与之交互,只需使用 CURL 之类的东西。这是一个页面,可让您测试它们提供的各种接口:

https://www.google.com/cloudprint/simulate.html

此处提供了用于提交作业的干参数列表:

https://developers.google.com/cloud-print/docs/appInterfaces#submit

我只会使用 CURL 来发布我的请求,而不必担心过度设计一些大型类,尤其是当您不需要 API 中的所有可用选项时。您应该查看 Python 示例 - 我知道您对 Python 没有太多经验,但是您设置为登录等的 HTTP 标头将与 PHP 中的相同:

login.putheader('content-type', 'application/x-www-form-urlencoded')

是相同的:

$request_headers[] = 'content-type: application/x-www-form-urlencoded';
curl_setopt($ch, CURLOPT_HTTPHEADER, $request_headers);`

我确实在这里找到了一个 API,但它在付费墙后面,所以我无法证明它的质量——如果你是为客户做这件事,尽管检查它可能值得节省金钱和精力:

http://www.phpgang.com/how-to-configure-google-cloud-api-in-php_288.html

于 2014-09-27T01:12:26.483 回答