python實(shí)現(xiàn)發(fā)送圖片到打印機(jī)進(jìn)行打印
前言
環(huán)境
操作系統(tǒng):win10
python:3.8.16
依賴
pip install openpyxl qrcode pillow pypiwin32 reportlab
功能
python printer.py 運(yùn)行后,會(huì)檢索本機(jī)已經(jīng)連接的打印機(jī)設(shè)備,然后通過需要選擇打印機(jī),然后傳入圖片路徑即可下發(fā)打印任務(wù)到打印機(jī)(期間會(huì)對(duì)圖片轉(zhuǎn)矢量圖)。
可以對(duì)圖片輸入部分做個(gè)批量自動(dòng)化,就可以批量打印了。
效果圖

源碼
直接打印版本
import win32print
import win32ui
from PIL import Image, ImageWin
# 列出所有打印機(jī)
printers = [printer[2] for printer in win32print.EnumPrinters(2)]
for i, printer in enumerate(printers):
print(f"{i+1}: {printer}")
# 選擇打印機(jī)
choice = int(input("選擇要使用的打印機(jī) (輸入對(duì)應(yīng)的序號(hào)): ")) - 1
printer_name = printers[choice]
# 加載圖片
image_path = input("輸入要打印的圖片的路徑: ")
image = Image.open(image_path)
# 創(chuàng)建設(shè)備描述表
hDC = win32ui.CreateDC()
hDC.CreatePrinterDC(printer_name)
# 開始文檔
hDC.StartDoc(image_path)
# 開始頁(yè)面
hDC.StartPage()
# 繪制位圖
dib = ImageWin.Dib(image)
dib.draw(hDC.GetHandleOutput(), (0, 0, image.width, image.height))
# 結(jié)束頁(yè)面
hDC.EndPage()
# 結(jié)束文檔
hDC.EndDoc()
# 刪除設(shè)備描述表對(duì)象
del hDC
print("打印成功!")
打開edge進(jìn)行打印的版本
會(huì)運(yùn)行edge讓你手動(dòng)打印0.0
import subprocess
import win32print
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter, landscape
from PIL import Image
# 列出所有打印機(jī)
printers = [printer[2] for printer in win32print.EnumPrinters(2)]
for i, printer in enumerate(printers):
print(f"{i+1}: {printer}")
# 選擇打印機(jī)
choice = int(input("選擇要使用的打印機(jī) (輸入對(duì)應(yīng)的序號(hào)): ")) - 1
printer_name = printers[choice]
# 加載圖片
image_path = input("輸入要打印的圖片的路徑: ")
image = Image.open(image_path)
# 轉(zhuǎn)換圖片為PDF
pdf_path = image_path.rsplit('.', 1)[0] + '.pdf'
c = canvas.Canvas(pdf_path, pagesize=landscape(letter))
width, height = landscape(letter)
c.drawImage(image_path, 0, 0, width, height)
c.showPage()
c.save()
# 打印PDF
edge_path = r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe' # 默認(rèn)的Edge路徑
cmd = [edge_path, '--kiosk-printing', pdf_path]
subprocess.run(cmd)
print("打印成功!")
到此這篇關(guān)于python實(shí)現(xiàn)發(fā)送圖片到打印機(jī)進(jìn)行打印的文章就介紹到這了,更多相關(guān)python圖片發(fā)送與打印內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python Selenium 搜索和點(diǎn)擊示例代碼
使用Python Selenium實(shí)現(xiàn)Google搜索與點(diǎn)擊,需安裝庫(kù)及瀏覽器驅(qū)動(dòng),通過顯式等待確保結(jié)果加載,支持精準(zhǔn)/隨機(jī)點(diǎn)擊,處理元素遮擋及廣告過濾,本文給大家介紹Python Selenium 搜索和點(diǎn)擊,感興趣的朋友一起看看吧2025-06-06
python字符串,元組,列表,字典互轉(zhuǎn)代碼實(shí)例詳解
這篇文章主要介紹了python字符串,元組,列表,字典互轉(zhuǎn)代碼實(shí)例詳解,需要的朋友可以參考下2020-02-02
Python實(shí)現(xiàn)在PDF中插入單圖像水印和平鋪圖像水印
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)在PDF中插入單圖像水印和平鋪圖像水印,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04
Python庫(kù)AutoTS一行代碼得到最強(qiáng)時(shí)序基線
AutoTS它是一個(gè)用于自動(dòng)時(shí)間序列分析的 Python 庫(kù)。AutoTS 允許我們用一行代碼訓(xùn)練多個(gè)時(shí)間序列模型,以便我們可以選擇最適合的模型,今天介紹一種非常霸道的工具,融合了自動(dòng)化機(jī)器學(xué)習(xí)技術(shù)開發(fā)的AutoTS2022-03-03
python實(shí)現(xiàn)數(shù)字炸彈游戲程序
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)數(shù)字炸彈游戲程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-07-07
基于python實(shí)現(xiàn)垂直爬蟲系統(tǒng)的方法詳解
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)垂直爬蟲系統(tǒng)的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-03-03
python類和函數(shù)中使用靜態(tài)變量的方法
這篇文章主要介紹了python類和函數(shù)中使用靜態(tài)變量的方法,實(shí)例分析了三種常用的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05

