我有一个项目,我正在使用Python和GhostScript。目前我有一个有几百页的PDF文件,我需要把这个PDF和页面分成TIF文件,我有正确的代码,但是由于这个程序可能需要一些时间来完成,我希望有输出给用户显示它在过程中的距离。
gs_appdir = 'C:\\Program Files\\gs\\gs9.10\\bin\\'
os.chdir(gs_appdir)
args = "-o \""+wkgdir+"Images\\Image_%03d.tif\" -sDEVICE=tiffg4 -q -NODISPLAY -r200x200 -s \""+inPDFFile+"\""
os.system("gswin64c.exe %s" % args)
当我从参数中取出-q参数时,它会显示给我,但是它会一行一行地进行:
xxxx的第1页
第2页,xxxx
第3页,共xxxx
......等等。
我想做类似的事情:
print "\r[ Preparing Images ] %s%%" % ((img+1)*100/imgcount),
它会在同一行打印百分比,但是我不太确定如何使用GhostScript完成此操作。任何建议都会受到很大关注。
答案 0 :(得分:0)
您必须首先使用4 Ghostscript扩展来打开PDF文件,开始PDF解释,计算页数,然后输入渲染每个页面并发出消息的循环。接下来关闭一切。通常,Ghostscript中的便利例程会为您处理所有这些,但它们不会发出您想要的那种消息。
即使它全部发射在同一条线上,我也不认为你会喜欢它。你似乎假设后面的行只是简单地擦除(写在上面)前面的行,而这不是我不认为的情况,尽管它确实取决于命令shell(因此也取决于操作系统)您正在使用。我注意到你似乎在使用Windows,你或许可以用\ r得到这个效果我不确定。
从根本上说,如果你想这样做,你将不得不编写一个使用API而不是将Ghostscript作为外部进程执行的新应用程序,并自行处理stdout回调。