mac 平台,想用 Python 每日自动生成 word,并操作远程打印机打印一下 word。遇到困难了!

2017-07-10 00:22:10 +08:00
 mikulch

为了操作打印机,选择了 pyQt5 的库。现在遇到了以下问题。

  1. pyQt5 一直没找到能够正常使用连接远程打印机的代码示例。有大侠能给一份吗?
  2. mac 平台上面,word 转 pdf 应该怎么实现?使用 python 可以实现吗?如果不行,是否可以通过 apple script 实现?( automator + applescript+ python )

谢谢各位 V 站的大侠!已经调查了蛮久时间了,没什么成功。当一次伸手党了!

2938 次点击
所在节点    问与答
6 条回复
BingoXuan
2017-07-10 00:40:34 +08:00
用 pages 打开导出 PDF 再打印呗,automator 批量执行就好了
Kirscheis
2017-07-10 06:58:13 +08:00
用 Qt5 操作打印机也可以说是很迷了。。

关于你的问题:
1. pyQt5 一直没找到能够正常使用连接远程打印机的代码示例。有大侠能给一份吗?
Qt5 是一个 GUI 库,它可以用来绘制打印预览的 UI,但很少听说过专门用 Qt 操作打印机的。我想你可能是对它的用途有一些什么误解。常用的操作打印机的库是 cups 的一些连接库,比如 pycups。

2. mac 平台上面,word 转 pdf 应该怎么实现?使用 python 可以实现吗?如果不行,是否可以通过 apple script 实现?( automator + applescript+ python )
docx 是私有格式,转换不方便,如果你有 Microsoft Word,在 Mac 上直接选打印,打印选单里选 Save as PDF。

吐槽:
1. 为什么生成 word ?既然你用了“自动生成 word ”这样的说法,那我就假设你想做的事是用某种 source 生成带格式和排版的文档。既然你的目标只是打印,那何必先生成 word,然后再转化成 pdf ??而且生成 word 也不是一件简单的事啊。。
2. 你的打印机到底在什么地方?接在本地 Mac 机上,还是网络打印机?这两种情况解决方法完全不一样
3. 你需要的操作方式到底是完全自动、headless 的定时或者监听服务,还是可以操作一定的 GUI、手动唤醒的任务?
Kirscheis
2017-07-10 07:10:57 +08:00
当然,一定要用 Qt5 的话,Qt5 也是有能力操作打印机的,因为它确实也封装了 cups 和本地打印机的 driver 的一个类。。但是其实 Qt5 操作打印机的 Qt Print 主要的重心是一整套带 GUI 的打印机操作库,一般是用来写一个给人操作的 GUI 的(这一点从它实现了一大堆 Dialog 类就能看出来),对于一个不和人类交互的自动化程序来说用 Qt5 操作打印机属于绕了一个天大的弯子。。
对于从另一个程序直接输出的内容,是完全没有 GUI 什么事的,你需要的是把文件输出给打印机的 driver,或者输出给接管了打印机的 cups 或者随便什么服务
wildcat007
2017-07-10 08:43:07 +08:00
楼上真爱~
mikulch
2017-07-10 12:10:34 +08:00
@Kirscheis 用 qt 的原因
https://www.v2ex.com/t/371458#reply4

来自于这个帖子。等下我仔细阅读你的回复 非常感谢你!
mikulch
2017-07-11 10:58:41 +08:00
@Kirscheis

1. 为什么生成 word ?既然你用了“自动生成 word ”这样的说法,那我就假设你想做的事是用某种 source 生成带格式和排版的文档。既然你的目标只是打印,那何必先生成 word,然后再转化成 pdf ??而且生成 word 也不是一件简单的事啊。。

-> 公司有一个填写加班申请的的 word 模板。我希望使用 python 自动在这个 word 模板上填入以往的加班时间。(从考勤系统中抓取)然后连接远程打印机(同一个内网),打印填写好的加班单。

2. 你的打印机到底在什么地方?接在本地 Mac 机上,还是网络打印机?这两种情况解决方法完全不一样
-> 远程网络打印机

3. 你需要的操作方式到底是完全自动、headless 的定时或者监听服务,还是可以操作一定的 GUI、手动唤醒的任务?
-> 是完全自动的方式。每天早上运行脚本-抓取考勤系统数据-判断昨日是否加班-填入加班时间-操作远程打印机打印 word 模板文件。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/374152

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX