有一批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