有大量的文件要打印,一個一個點開打印,機械重複?Python, help!
環境準備:
python3.8、pywin32、os
首先,需要安裝第三方庫pywin32,這樣才能用Python調用Windows API(應用程序編程接口)。
若未安裝,則運行"cmd",輸入"pip3 install pywin32",等待安裝完成即可。
C:\Users\Administrator>cd..
C:\Users>cd..
C:\>
C:\>cd python38
C:\Python38>pip3 install pywin32
(啟動cmd,進入python目錄,然後安裝第三方庫pywin32)
然後導入win32api,定義一個打印函數Print,以便後續重複調用。函數裡面主要的部分就是win32api.ShellExecute。它用于啟動應用程序,其第2個參數用于指定操作,這裡的"print"表示啟動打印應用程序。其餘參數見如下程序部分的注釋。
#定義打印函數,以便重複調用
import win32api
def Print(fileName):
win32api.ShellExecute (
0, #指定父窗口句柄,搞不懂
"print", #指定操作,這裡的"print"表示啟動打印應用程序
fileName, #要打印的文件名
None, #打印機設置,若是"None",則使用windows設置的默認打印機
".", #指定默認目錄,照抄的,搞不懂
0 #若fileName參數是一個可執行程序,則此參數指定程序窗口的初始顯示方式,否則此參數應設置為0
)
打印函數定義好後,就可以指定文件夾,将其中待打印的文件逐個送入打印函數,進行批量打印了。
高能預警這個打印函數非常NB,包治百病,隻要是平時工作中能打印的文件都能打印,不管是word,txt,還是excel,PPT,PDF,通吃。你要做的就隻是事先調整好文檔裡的打印設置,其他就隻等着收打印稿了。
#獲取待打印文件的路徑
import os
path='文件' #文件所在文件夾
files = [path "\\" i for i in os.listdir(path)] #獲取文件夾下的文件名,并拼接完整路徑
files
>>
['文件\\test.docx', '文件\\test.txt']
批量打印:
#批量打印
for file in files:
Print(file)
import win32api
import os
#定義打印函數,以便重複調用
def Print(fileName):
win32api.ShellExecute (
0,#指定父窗口句柄,搞不懂
"print",#指定操作,這裡的"print"表示啟動打印應用程序
fileName, #要打印的文件名
None,#打印機設置,若是"None",則使用windows設置的默認打印機
".",#指定默認目錄,照抄的,搞不懂
0 #若fileName參數是一個可執行程序,則此參數指定程序窗口的初始顯示方式,否則此參數應設置為0
)
#獲取待打印文件的路徑
path='d:\d12' #文件所在文件夾
#或 path= input("請在英文輸入法狀态下輸入文件目錄,然後回車運行。文件目錄:")
files = [path "\\" i for i in os.listdir(path)] #獲取文件夾下的文件名,并拼接完整路徑
files
Print(files) #獲取文件夾下的文件完整路徑
#批量打印
for file in files:
Print(file)
(完整代碼)
(啟動圖)
(文件内容)
打印結果就不展示了。
慢着,老闆說要重視綠色環保,節約用紙,請大家雙面打印。那“雙面打印”怎麼在程序設置啊?額......雙面打印不在程序裡設置,在打印機裡設置。在你的默認打印機上點右鍵,選擇“打印首選項”,然後在“雙面打印”那裡選“是,翻轉”。每個打印機的設置界面可能有差異,但大緻差不多就醬。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!