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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM