tft每日頭條

 > 科技

 > python調用打印機打印文檔linux

python調用打印機打印文檔linux

科技 更新时间:2024-08-01 05:14:43

有大量的文件要打印,一個一個點開打印,機械重複?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)

(完整代碼)

python調用打印機打印文檔linux(Python實現打印機批量打印文件)1

(啟動圖)

python調用打印機打印文檔linux(Python實現打印機批量打印文件)2

(文件内容)

打印結果就不展示了。

慢着,老闆說要重視綠色環保,節約用紙,請大家雙面打印。那“雙面打印”怎麼在程序設置啊?額......雙面打印不在程序裡設置,在打印機裡設置。在你的默認打印機上點右鍵,選擇“打印首選項”,然後在“雙面打印”那裡選“是,翻轉”。每個打印機的設置界面可能有差異,但大緻差不多就醬。

python調用打印機打印文檔linux(Python實現打印機批量打印文件)3

python調用打印機打印文檔linux(Python實現打印機批量打印文件)4

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved