V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
mikulch
V2EX  ›  问与答

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

  •  
  •   mikulch · 2017-07-10 00:22:10 +08:00 · 2925 次点击
    这是一个创建于 2679 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    6 条回复    2017-07-11 10:58:41 +08:00
    BingoXuan
        1
    BingoXuan  
       2017-07-10 00:40:34 +08:00 via Android
    用 pages 打开导出 PDF 再打印呗,automator 批量执行就好了
    Kirscheis
        2
    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
        3
    Kirscheis  
       2017-07-10 07:10:57 +08:00   ❤️ 1
    当然,一定要用 Qt5 的话,Qt5 也是有能力操作打印机的,因为它确实也封装了 cups 和本地打印机的 driver 的一个类。。但是其实 Qt5 操作打印机的 Qt Print 主要的重心是一整套带 GUI 的打印机操作库,一般是用来写一个给人操作的 GUI 的(这一点从它实现了一大堆 Dialog 类就能看出来),对于一个不和人类交互的自动化程序来说用 Qt5 操作打印机属于绕了一个天大的弯子。。
    对于从另一个程序直接输出的内容,是完全没有 GUI 什么事的,你需要的是把文件输出给打印机的 driver,或者输出给接管了打印机的 cups 或者随便什么服务
    wildcat007
        4
    wildcat007  
       2017-07-10 08:43:07 +08:00
    楼上真爱~
    mikulch
        5
    mikulch  
    OP
       2017-07-10 12:10:34 +08:00
    @Kirscheis 用 qt 的原因
    https://www.v2ex.com/t/371458#reply4

    来自于这个帖子。等下我仔细阅读你的回复 非常感谢你!
    mikulch
        6
    mikulch  
    OP
       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 模板文件。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2556 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 01:36 · PVG 09:36 · LAX 17:36 · JFK 20:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.