import win32api
import win32print
def print_pdf(self, pdf_file_name):
"""
静默打印pdf
:param pdf_file_name:
:return:
"""
GSPRINT_PATH = 'gsprint'
GHOSTSCRIPT_PATH = 'gswin32c'
currentprinter = win32print.GetDefaultPrinter()
win32api.ShellExecute(
0, \
'open', \
GSPRINT_PATH, \
'-ghostscript \
"' + GHOSTSCRIPT_PATH + '" \
-printer \
"' + currentprinter + '" \
"'+pdf_file_name+'" ', \
'.', \
0
)
这个需要安装GSPRINT和Ghostscript,并将其添加到系统环境中。
请点击依赖环境下载地址
GhostScript命令参数相关参数如下说明:
"-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输出页数