如何使用 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. 总结

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

相关推荐
子兮曰4 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰4 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
默_笙4 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
爱勇宝4 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
qq_426003964 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
胡写代码4 天前
别再前后端各写一套表单校验了
java·后端
长沙三为智能科技4 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读4 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python