python编写win 本地reader程序_python - 使用Python,win32api和Acrobat Reader 9打印PDF - 堆栈内存溢出...

我有报告称我发送的系统要求报告采用可读的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或其他问题有关。

任何建议或意见将不胜感激。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值