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

源碼
直接打印版本
import win32print
import win32ui
from PIL import Image, ImageWin
# 列出所有打印機
printers = [printer[2] for printer in win32print.EnumPrinters(2)]
for i, printer in enumerate(printers):
print(f"{i+1}: {printer}")
# 選擇打印機
choice = int(input("選擇要使用的打印機 (輸入對應的序號): ")) - 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)
# 開始頁面
hDC.StartPage()
# 繪制位圖
dib = ImageWin.Dib(image)
dib.draw(hDC.GetHandleOutput(), (0, 0, image.width, image.height))
# 結(jié)束頁面
hDC.EndPage()
# 結(jié)束文檔
hDC.EndDoc()
# 刪除設(shè)備描述表對象
del hDC
print("打印成功!")
打開edge進行打印的版本
會運行edge讓你手動打印0.0
import subprocess
import win32print
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter, landscape
from PIL import Image
# 列出所有打印機
printers = [printer[2] for printer in win32print.EnumPrinters(2)]
for i, printer in enumerate(printers):
print(f"{i+1}: {printer}")
# 選擇打印機
choice = int(input("選擇要使用的打印機 (輸入對應的序號): ")) - 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' # 默認的Edge路徑
cmd = [edge_path, '--kiosk-printing', pdf_path]
subprocess.run(cmd)
print("打印成功!")
到此這篇關(guān)于python實現(xiàn)發(fā)送圖片到打印機進行打印的文章就介紹到這了,更多相關(guān)python圖片發(fā)送與打印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python字符串,元組,列表,字典互轉(zhuǎn)代碼實例詳解
這篇文章主要介紹了python字符串,元組,列表,字典互轉(zhuǎn)代碼實例詳解,需要的朋友可以參考下2020-02-02
Python實現(xiàn)在PDF中插入單圖像水印和平鋪圖像水印
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)在PDF中插入單圖像水印和平鋪圖像水印,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-04-04
基于python實現(xiàn)垂直爬蟲系統(tǒng)的方法詳解
這篇文章主要為大家詳細介紹了python實現(xiàn)垂直爬蟲系統(tǒng)的方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
python類和函數(shù)中使用靜態(tài)變量的方法
這篇文章主要介紹了python類和函數(shù)中使用靜態(tài)變量的方法,實例分析了三種常用的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-05-05

