javascript - 谷歌云打印:最简单的客户端
问题描述
考虑使用 Google Cloud Print,OAuth2、各种令牌/客户端 ID 等似乎相当复杂。
从网页打印 PDF 的最简单方法是什么?
- 在 Javascript 中使用 AJAX(所以使用 CORS)或使用 Java 实现服务器端(但最好不需要太多 jar)
- PDF 文档可以以二进制形式发送或称为公开可用的 URL
- 最好没有用户登录,必须有某种“服务”授权
同一个应用程序已经在使用 API 密钥进行谷歌地图地理编码。因此,如果可能,重新使用这些密钥将是理想的选择。
如果有一些关于如何以最简单的方式做到这一点的指示,那就太好了。
解决方案
最简单的可能方案是使用 GCP Web 元素,如下所述:https ://developers.google.com/cloud-print/docs/gadget
它归结为包含打印小工具脚本,创建一个容器来托管按钮并在其中创建打印小工具:
<html>
<head>
</head>
<body>
<div id="print_button_container"></div>
<script src="https://www.google.com/cloudprint/client/cpgadget.js">
</script>
<script>
window.onload = function() {
var gadget = new cloudprint.Gadget();
gadget.setPrintButton(
cloudprint.Gadget.createDefaultPrintButton("print_button_container")); // div id to contain the button
gadget.setPrintDocument("url", "Test Page", "https://www.google.com/landing/cloudprint/testpage.pdf");
}
</script>
</body>
</html>
如果您没有登录您的 GCP 帐户,您将看到相应的登录对话框,然后您将选择目标打印机。
在这里检查小提琴: https ://jsfiddle.net/0ncsuqra/
推荐阅读
- sql - 得到 ORA-00979: 不是没有任何聚合函数的 GROUP BY 语句
- javascript - laravel 中的 API 和 Vue js
- ios - 当页面在 Ionic Framework 中以编程方式切换时,它会破坏该页面吗?
- javascript - 如何在正在测试的组件中模拟 util 函数
- uml - 我可以从 UML 中的对象图制作类图吗?
- javascript - 仅选择一组中的一个按钮
- matlab - Matlab:如何在类的静态方法中清除持久变量
- php - 如何将 Ymd 日期转换为 UTC 日期时间?
- c# - 为什么按下“Enter”时我的 WinForms 应用程序会发出声音?
- javascript - 如何构建 Node.js 项目并尊重 DRY