我有一台始终开启的无线打印机和一台始终开启的无风扇 Linux 服务器。
在查看 Kickstarter 上的 mprinter 项目时,我开始想知道是否有办法根据某些设置准备自动每日打印输出。
需要打印的内容包括
- 我所在位置的天气预报
- 当天安排的待办事项
- “每日一句”或“每日一词”
- 来自 Google Analytics 的我的网站统计数据
- 还有很多 …
我会设置每个工作日 6:15 打印一份,这样当我起床喝咖啡的时候,它就会出现在打印机上。
虽然我知道可以通过结合 TeX、cron 和脚本语言的功能来管理 PDF 的动态部分,但我相信这是一个有人可能已经解决的用例。
我该如何进行设置?
答案1
这绝不是最干净的做事方式。 这是一个关于您可以快速组合起来实现您想要做的事情的一般想法。
设置打印机
首先,您需要让您的打印机正常工作。CUPS 确实支持无线打印机,因此只要有一点运气和正确的驱动程序,您就能够设置它。有关更多信息,请参阅服务器的发行版 wiki/帮助页面。
获取数据
然后,您需要以纯文本形式获取数据。Google 将帮助您找到可完成大部分所需任务的脚本:
对于其他特殊需求,您必须自行编写:
- 待办事项取决于你已经使用什么机制来跟踪
- 谷歌分析。遗憾的是无法通过命令行浏览器访问,而且我对 Google Analytics API 一无所知。我只能想到一些非常丑陋和不可靠的方法,所以你必须进行一些搜索。
整合你的脚本
我们现在有一堆可以运行的脚本,但我们需要将所有数据放在一起。对于大多数 hackjobs,我都会使用Python
。它不仅易于掌握和使用,您甚至可以将其他脚本“嵌入”到 Python 文件中并获取其输入:
从 os 导入 popen
脚本='''ps aux; echo; free -h'''
输出=popen(脚本).read()
这不是最好的主意,但这样你就不会有重写已经可用的复杂功能。
格式化
HTML 易于学习和美化。Google 再次拯救了我们:Python 和 HTML. 将我们拥有的数据与 HTML 连接起来,添加几行CSS定义您的页面的外观(字体、颜色、布局等)并让 python 将所有这些写入文件中。
打印文档
将脚本保存到服务器上并进行测试。跳至
Can I print html files from the command-line?
进行一些测试打印。添加计划任务该作业将在每天早上所需的时间运行您的脚本。
添加咖啡。
纸张是一种宝贵的资源;我会让我的网络服务器提供这个文件,并在我的平板电脑、手机或笔记本电脑上阅读它。