我有一個項目,我正在使用Python和GhostScript。目前我有一個有幾百頁的PDF文件,我需要把這個PDF文件分離成TIF文件,我的代碼已經正確運行,但是由於這個程序需要一些時間才能完成,所以我想要給用戶的輸出顯示它在過程中有多遠。GhostScript完成百分比
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
頁的
頁XXXX 1
第2頁3 of xxxx
... et c。
我願做類似這樣:
print "\r[ Preparing Images ] %s%%" % ((img+1)*100/imgcount),
凡將打印在同一行的百分比,但是我不太清楚如何做到這一點使用GhostScript的。任何建議將大大appriciated。
這幾乎是我所害怕的。我認爲我的用戶將不得不接受1-2分鐘的等待時間(可能會爲他們預先留言)。 只要\ r,你是正確的,並不是所有人都會接受,但是對於這個特殊的設置它正在工作。 – user3232819
@ user3232819:你只需要改變你的方法。您可以在進程運行時獲取進程輸出,而無需等待進程完成任務。看看這個:http://stackoverflow.com/questions/16557908/getting-output-of-a-process-at-runtime //如果你以建議的方式調用Ghostscript,你將可以逐行獲取在處理頁面時從Ghostscript輸出。我在.NET中做了類似的事情,它可以工作。當您逐行輸出時,請解析每一行以獲取「當前頁面」以及「總頁數」並計算您的進度值。 – HABJAN