如何使用 Python+Flask+win32print 实现简易网络打印服务

Python 实现网络打印机:Flask + win32print

在工作场景中,我们可能需要一个简单的网页接口,供他人上传文档并自动打印到指定打印机。

本文将演示如何使用 Python + Flask + win32print 库来实现这一需求。

代码详见:https://github.com/poboll/webprint

1. 环境准备

  • Windows 10/11
  • Python 3.8+
  • 打印机(已安装并可用)
  • Flask
  • pywin32

安装依赖:

bash 复制代码
pip install flask pywin32

2. 代码实现

主要思路:

  1. 使用 Flask 提供一个上传文件的简单表单(HTML)
  2. 后端接收文件后,保存到临时目录
  3. 调用 win32print 设置默认打印机
  4. 使用 win32api.ShellExecute 执行"printto"操作

代码如下(app.py):

python 复制代码
import os
import time
import win32api
import win32print
from flask import Flask, request, render_template

app = Flask(__name__)
# ... 省略若干实现 ...

3. 注意事项

  • 要确保 doc/docx/pdf 在 Windows 系统中有默认程序关联
  • 打印机名称需要与实际安装的打印机匹配
  • 在内网使用时最好加上访问限制

4. 总结

通过这样的方式,我们可以轻松地在办公环境中实现一个简易"网络打印服务"。如需更多功能(用户管理、打印记录统计、队列优先级等),可继续在此基础上扩展。

相关推荐
MO2T几秒前
使用 Flask 构建基于 Dify 的企业资金投向与客户分类评估系统
后端·python·语言模型·flask
慢热型网友.4 分钟前
用 Docker 构建你的第一个 Python Flask 程序
python·docker·flask
Naiva4 分钟前
【小技巧】Python + PyCharm 小智AI配置MCP接入点使用说明(内测)( PyInstaller打包成 .exe 可执行文件)
开发语言·python·pycharm
云动雨颤8 分钟前
Python 自动化办公神器|一键转换所有文档为 PDF
运维·python
光溯星河8 分钟前
【实践手记】Git重写已提交代码历史信息
后端·github
梦子要转行13 分钟前
matlab/Simulink-全套50个汽车性能建模与仿真源码模型9
开发语言·matlab·汽车
梅孔立20 分钟前
yum update 报错 Cannot find a valid baseurl for repo: centos-sclo-rh/x86_64 等解决办法
linux·python·centos
PetterHillWater27 分钟前
Trae中实现OOP原则工程重构
后端·aigc
圆滚滚肉肉30 分钟前
后端MVC(控制器与动作方法的关系)
后端·c#·asp.net·mvc
SimonKing31 分钟前
拯救大文件上传:一文彻底彻底搞懂秒传、断点续传以及分片上传
java·后端·架构