zoukankan      html  css  js  c++  java
  • python 批量打印PDF

    有一批PDF文件,好几百个,每个只打印第2,3页,双面打印。

    网上搜索一波,方案如下:

    安装Ghostscript,GhostView,使用gsprint命令打印pdf文件。

    gsprint命令参数说明:

         "-dQUIET",    安静的意思,指代执行过程中尽可能少的输出日志等信息。(也可以简写为“-q”)
         "-dNOSAFER",    通过命令行运行
         "-dBATCH",    执行到最后一页后退出
         "-dNOPAUSE",    每一页转换之间没有停顿
         "-dNOPROMPT",    没有相关提示
         "-dFirstPage=1",    从第几页开始
         "-dLastPage=5",     到第几页结束
         "-sDEVICE=pngalpha",    转换输出的文件类型装置,默认值为x11alpha
         "-g720x1280",    图片像素(-g<width>x<height>),一般不指定,使用默认输出
         "-r300",    图片分辨率(即图片解析度为300dpi),默认值好像是72(未测试证实)
         "-sOutputFile=/opt/shanhy/error1png/%d.png",    图片输出路径,使用%d或%ld输出页数

    比如打印c.pdf第2,3页,命令如下

    gsprint -dFirstPage=2 -dLastPage=3 c.pdf
    

    大部分pdf只打印第2,第3页,双面打印,所以用python控制批量打印所有pdf的第二页,暂停,提示翻页,然后批量打印第三页。

    完整代码如下

    # -*- coding: utf-8 -*-
    import os
    import time
    
    def print_pdf(pdf_file_name, page):
        """
            静默打印pdf
            :param pdf_file_name
            :page  打印第几页
            :return:
            """
        cmd = 'gsprint -dFirstPage=%s -dLastPage=%s %s' % (page, page, pdf_file_name)
        print(cmd)
        p = os.popen(cmd)
        time.sleep(3)
        print(p.read())
        
    if __name__ == '__main__':
        curr_path = os.getcwd()
        fl = os.listdir(curr_path)
        for i in range(2,4):
            print(i)
            for f in fl:
                if 'pdf' in f.lower():
                    print_pdf(f, i)
            a = raw_input('请翻转打印纸')

    ghostscript下载地址:

    https://www.ghostscript.com/download.html

    ghostview下载地址:

    http://www.onlinedown.net/soft/6218.htm

    技术不行 业务不行 管理不行
  • 相关阅读:
    【medium】78. Subsets
    【easy】784. Letter Case Permutation
    【easy】671. Second Minimum Node In a Binary Tree
    【easy】Number of Segments in a String 字符串中的分段数量
    【easy】268. Missing Number
    【easy】235. Lowest Common Ancestor of a Binary Search Tree
    【easy】198. House Robber 123总结……
    【easy】438.Find All Anagrams in a String 找出字符串中所有的变位词
    【easy-】437. Path Sum III 二叉树任意起始区间和
    【easy】437. Path Sum III 二叉树任意起始区间和
  • 原文地址:https://www.cnblogs.com/onelang/p/10631350.html
Copyright © 2011-2022 走看看