You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu Server 22.04.2下用Python打印PDF至局域网Epson L450打印机

在Ubuntu Server上用Python打印PDF到局域网Epson L450打印机

Ubuntu Server没有os.startfile这类Windows专属API,你需要基于CUPS(Ubuntu默认打印系统)实现PDF打印,以下是可行方案:

第一步:配置CUPS与网络打印机

  • 安装CUPS服务:
sudo apt update && sudo apt install cups
  • 启动并启用CUPS服务:
sudo systemctl start cups && sudo systemctl enable cups
  • 添加局域网内的Epson L450打印机:
    Epson L450支持IPP网络打印,通过打印机IP地址添加即可,替换<打印机IP>为设备实际局域网IP:
    sudo lpadmin -p Epson_L450 -v ipp://<打印机IP>:631/ipp/print -E -m everywhere
    
    执行后用lpstat -p命令确认打印机是否添加成功,若要设为默认打印机,运行:
    sudo lpoptions -d Epson_L450
    

第二步:修改Python脚本实现打印

用subprocess模块调用CUPS的lp命令替代原Windows代码,实现PDF打印:

import subprocess
import time

# file为你通过Selenium下载的PDF文件路径
if nfile != logname:
    # 调用lp命令打印,已设默认打印机可去掉"-d Epson_L450"参数
    subprocess.run(["lp", "-d", "Epson_L450", file], check=True)
    
    # 可选:等待打印任务进入队列,时间按需调整
    time.sleep(2)
    
    # 无GUI环境下无需杀PDF查看器进程,lp由cupsd后台处理;若用了evince等工具,可按需清理
    # for p in psutil.process_iter():
    #     if 'evince' in str(p):
    #         p.kill()

补充依赖

如果是无GUI的Ubuntu Server,需安装PDF转打印格式的依赖:

sudo apt install cups-filters ghostscript

可通过lpq查看打印队列状态,lprm取消打印任务。

内容的提问来源于stack exchange,提问作者Omar Morales Rivera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:12:40