有一批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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)