我有报告称我发送的系统要求报告采用可读的PDF格式。 我尝试了所有免费的库和应用程序,我发现的唯一一个是Adobe的acrobat系列。
我在python中编写了一个快速脚本,使用win32api使用默认注册的应用程序(Acrobat Reader 9)将pdf打印到我的打印机然后在完成时终止任务,因为acrobat喜欢在从命令行调用时打开窗口。
我将其编译成可执行文件并通过命令行传递值(例如printer.exe%OUTFILE %% PRINTER%)然后在批处理文件中调用它
import os,sys,win32api,win32print,time
# Command Line Arguments.
pdf = sys.argv[1]
tempprinter = sys.argv[2]
# Get Current Default Printer.
currentprinter = win32print.GetDefaultPrinter()
# Set Default printer to printer passed through command line.
win32print.SetDefaultPrinter(tempprinter)
# Print PDF using default application, AcroRd32.exe
win32api.ShellExecute(0, "print", pdf, None, ".", 0)
# Reset Default Printer to saved value
win32print.SetDefaultPrinter(currentprinter)
# Timer for application close
time.sleep(2)
# Kill application and exit scipt
os.system("taskkill /im AcroRd32.exe /f")
这似乎适用于大量的,大约2000个报告在3-4小时内,但我有一些下降,我不确定脚本是否不堪重负或我是否应该研究多线程或其他东西。
它处理如此大量但没有丢失的事实让我相信问题不在于脚本,但我不确定它是否与主机系统或Adobe Reader或其他问题有关。
任何建议或意见将不胜感激。