大公司如何实现打印机共享的?如何对打印机进行管控或者工号登录后进行打印?异地打印机共享的如何实现可以帮助用户在不同地理位置使用同一台打印机完成打印任务?
如果在局域网内,可以不需要进行二次开发,通过对打印机进行配置,实现共享使用。
一、打印机共享的设置方法
打印机共享能极大地提高办公效率,以下是详细的设置步骤:
- 连接打印机的电脑 A 设置共享网络:
点击开始菜单中的设置 - 网络和 Internet - 状态 - 网络和共享中心 - 更改高级共享设置,启用网络发现、文件和打印机共享。
- 设置打印机共享:
点击开始菜单设置 - 设备 - 蓝牙和其他设备 - 设备和打印机,在打印机列表中右键点击想要共享使用的打印机,选择打印机属性,在共享栏中勾选 “共享这台打印机” 并设置共享名。
- 查看电脑 A 的 IP 地址:
按下键盘上的 WINDOWS 键 + R 键呼出运行框,输入 CMD 后点击确定按钮,在命令行中输入 ipconfig 并敲击回车键,记录 ipv4 地址。
- 电脑 B 连接共享打印机:
点击开始菜单设置 - 设备 - 蓝牙和其他设备 - 设备和打印机 - 添加打印机,直接点击 “我所需的打印机未列出”,选择按名称选择共享打印机,在输入框中输入 \ 电脑 A 的 IPV4 地址 \ 打印机的共享名(例如 \192.168.1.1\HP123),点击下一步并输入电脑 A 的账号密码(开机密码)即可完成连接。
设置共享打印机时需注意,设置成功以后电脑 A 不能关机,关机以后电脑 B 也不能共享打印。同时,为确保顺利共享,电脑 A 和电脑 B 最好在同一个用户组,电脑 A 的防火墙必须开启且在允许通过的应用必须要文件和打印机共享,电脑 A 和电脑 B 的 SMB 功能必须开启。如果下方有 smb 直通选项的话,也一并勾选。电脑 A 中需要开启的服务,有:Print Spooler、SSDP Discovery、UPnP Device Host、TCP/IP NetBIOS Helper 等。若电脑 B 不能打开 ip 路径,可能是 TCP/IP NetBIOS Helper 服务没开启造成的。Computer Browser 服务若不能开启,则不能勾选启用文件和打印机共享,在打开 SMB 功能后重启可以开启。WebClient 服务也需确保正常运行。若电脑 B 登录电脑 A 时使用 Guest 账户,就不能禁用 Guest 账户,需保持开启。Guest 账户可在管理–本地用户和组中开启,家庭版 WIN10 没有此选项,其他版如果没有,可按照特定方法添加即可。
二、打印机共享的好处
(一)节约成本
在办公场景中,若每个员工都配备一台打印机,不仅会增加设备采购成本,还会带来后续的维护成本和耗材费用。而共享打印机可以让多台电脑或设备共同使用一台打印机,大大减少了公司在打印机设备上的投资。以一个拥有 50 名员工的小型公司为例,如果每人购买一台中等价位的打印机,费用可能高达数万元。而采用共享打印机的方式,只需要购买一台性能较好的打印机,就可以满足整个公司的打印需求,成本可以降低 80% 以上。
(二)方便快捷
共享打印机打破了传统打印机的使用限制,用户可以随时随地发送打印任务,无需等待或排队。无论你是在办公室的不同位置,还是在外出差,只要连接到同一网络,就可以轻松打印所需文件。例如,在紧急情况下需要打印一份重要文件,无需寻找特定的打印机或等待他人使用完毕,大大提高了工作效率。据统计,使用共享打印机可以节省 30% 以上的打印时间。
(三)节约空间
在现代办公环境中,空间往往是有限的。如果每个人都在自己的工作区域安装打印机,不仅会占用大量的桌面空间,还会使整个办公区域显得杂乱无章。共享打印机则可以避免这种情况的发生,只需要在一个合适的位置放置打印机,就可以满足所有人的打印需求。这样可以为员工创造一个更加整洁、舒适的工作环境,提高工作效率。
(四)环保节能
共享打印机可以有效减少打印次数,从而减少纸张和墨水的浪费。例如,当多个用户共享一台打印机时,他们会更加谨慎地选择打印内容,避免不必要的打印。同时,一些共享打印机还具有节能模式,可以在不使用时自动进入低功耗状态,进一步降低能源消耗。据数据显示,如果全国的企业都采用共享打印机,每年可以节约数十亿张纸张,减少数百万吨的二氧化碳排放。
(五)维护方便
对于个人用户来说,维护打印机可能是一件比较麻烦的事情。需要了解打印机的工作原理、掌握一定的维修技能,还需要购买各种耗材和配件。而共享打印机则由专业的 IT 人员进行维护和管理,他们可以及时解决打印机出现的各种问题,确保打印机始终处于良好的工作状态。这样不仅可以减少个人用户的维护麻烦,还可以提高打印机的使用寿命。
(六)安全保密
共享打印机可以设置打印密码,只有知道密码的用户才能进行打印操作。这样可以有效保护打印文件的安全和保密性,防止重要文件被他人窃取或泄露。同时,一些共享打印机还具有权限管理功能,可以根据用户的需求设置不同的打印权限,进一步提高文件的安全性。例如,企业可以设置只有特定部门的员工才能打印某些敏感文件,从而确保企业的商业机密不被泄露。
三、实现打印机共享的条件及常见问题解答
(一)实现打印机共享的条件
PC1 已经安装好打印机的驱动,确保 PC1 可以正常使用打印机。只有驱动安装正确,打印机才能在 PC1 上正常工作,从而为共享提供基础。
PC1 与其他电脑连接在一个局域网里。无论是通过有线网络连接还是无线网络连接,只要在同一个局域网内,就可以实现打印机共享。例如,如果一个台式机使用网线和路由器相连,一个笔记本使用 WIFI 接入同一个路由器,那么它们就处于一个局域网内,可以进行打印机共享。
(二)常见问题解答
输入网络凭证问题:
在其它电脑上连接打印机的时候,经常会遇到要求输入用户名和密码的对话框。这个问题可以通过在 PC1 上把 Guest 用户打开来解决。
具体操作是:右键计算机 —— 管理,找到系统工具 —— 本地用户和组 ——Guest,双击打开,把账户已禁用前面的勾去掉,点击确定。这样其他电脑在连接共享打印机时就不需要再输入用户名和密码了。
未授予的请求登录类型问题:
解决办法是进入控制面板 —— 管理工具,进入本地安全策略 —— 用户权限分配,找到拒绝从网络访问这台计算机,双击打开,选择 Guest—— 点击删除,确定即可。
通过这样的操作,可以允许 Guest 用户从网络访问 PC1 的打印机,从而解决未授予请求登录类型的问题。
总之,只要满足实现打印机共享的条件,并正确解决常见问题,就可以顺利地在局域网内实现打印机共享,提高办公效率。
异地打印机共享的实现可以帮助用户在不同地理位置使用同一台打印机完成打印任务。以下是五种常见的实现方案,每种方案的详细介绍如下:
1. 使用网络打印机(直接通过网络共享)
原理
将打印机连接到一个支持网络的设备(如打印服务器、路由器或联网的计算机),然后通过网络协议(如 IPP、SMB)共享给其他用户。
实现步骤
- 确保打印机支持网络连接(无线或有线)。
- 将打印机连接到局域网或广域网,并配置打印机的 IP 地址。
- 在打印机设置中启用共享功能。
- 在其他设备上,通过添加网络打印机的方式,输入打印机的 IP 地址并安装驱动程序。
- 用户可以通过网络直接访问和打印。
优点
- 方便配置,只需网络支持即可。
- 无需额外的软件或服务。
- 对于支持云功能的打印机,可能无需固定 IP 地址。
缺点
- 配置依赖网络环境,异地可能需要 VPN 或公网 IP。
- 打印机性能和稳定性可能会受到网络质量影响。
2. 使用云打印服务(如 Google Cloud Print)
原理
云打印服务将打印机与云端连接,用户通过云服务提交打印任务,打印机从云端接收任务并打印。
实现步骤
- 注册一个支持云打印的账户(如 Google、HP Smart)。
- 将打印机与云打印服务绑定(通过打印机自带功能或驱动程序)。
- 用户通过云打印服务上传打印文件,选择目标打印机。
- 打印机接收任务后完成打印。
优点
- 支持多设备接入(电脑、手机、平板)。
- 无需固定 IP 地址,只需网络连接即可。
- 文件传输加密,较为安全。
缺点
- 需要依赖第三方云服务。
- 服务提供商可能会限制功能或收取费用。
- 部分老旧打印机可能不支持云功能。
3. 使用远程桌面服务
原理
通过远程桌面协议(RDP),用户登录到异地的计算机,并在远程计算机上使用已安装的本地打印机完成打印任务。
实现步骤
- 在异地计算机上启用远程桌面服务。
- 确保本地计算机和远程计算机支持打印机重定向功能。
- 在远程桌面连接时,启用“打印机重定向”选项。
- 在远程计算机上使用本地打印机完成打印任务。
优点
- 无需额外配置网络打印功能。
- 支持复杂的打印设置(如双面打印)。
- 可用于打印机不支持网络的场景。
缺点
- 需要稳定的远程桌面连接。
- 打印速度可能受到网络延迟影响。
- 配置远程桌面服务可能需要管理员权限。
4. 使用虚拟专用网(VPN)与打印机共享
原理
通过 VPN 将异地用户加入到同一局域网,用户通过局域网访问共享的打印机资源。
实现步骤
- 在局域网内共享打印机(通过 Windows 共享功能或打印服务器)。
- 配置 VPN 服务器,提供局域网访问权限。
- 异地用户连接 VPN,访问共享打印机。
- 安装打印机驱动程序并进行打印任务。
优点
- 不依赖第三方服务。
- 适用于多种操作系统和打印机型号。
- 数据在 VPN 通道中加密传输,提高安全性。
缺点
- 需要额外配置 VPN 服务。
- VPN 带宽和稳定性可能影响打印效率。
- 对于大型网络环境,维护成本较高。
5. 使用第三方远程打印软件
原理
通过第三方远程打印软件(如 AnyDesk、TeamViewer、PrinterShare),在异地设备与本地打印机之间建立连接,提交打印任务。
实现步骤
- 在本地设备和异地设备上安装远程打印软件。
- 在软件中配置本地打印机为共享设备。
- 异地设备通过远程软件访问本地打印机。
- 提交打印任务,本地打印机完成打印。
优点
- 配置简单,无需专业知识。
- 支持大部分打印机型号。
- 软件通常自带加密功能,保证数据安全。
缺点
- 部分软件可能需要付费版本才能解锁全部功能。
- 依赖软件服务的稳定性。
- 传输速度和打印任务大小可能受到网络限制。
方案对比
方案 | 配置难度 | 适用场景 | 成本 | 优点 | 缺点 |
---|---|---|---|---|---|
网络打印机 | 低 | 局域网、支持公网 IP 的场景 | 低 | 简单易用 | 依赖网络,可能需要固定 IP |
云打印服务 | 中 | 支持云服务的打印机 | 中 | 多设备支持,跨平台 | 依赖第三方服务 |
远程桌面服务 | 中 | 异地操作方便的场景 | 低 | 无需额外硬件,灵活 | 需要稳定远程连接 |
VPN 与打印机共享 | 高 | 企业内部跨地域共享打印机 | 高 | 高安全性,适合企业环境 | 配置复杂,需专业网络知识 |
第三方远程打印软件 | 低 | 个人用户或简单共享需求 | 中 | 简单灵活,跨平台支持 | 依赖软件服务,可能有延迟 |
开发一个打印机驱动程序,并实现登录授权功能,需要结合以下几个方面进行开发:
- 打印机驱动程序的基础开发。
- 增加用户登录授权机制。
- 集成打印管控功能(例如打印队列管理、日志记录等)。
以下是详细的实现方案,包括各个步骤的实现逻辑和示例代码:
1. 打印机驱动基础开发
概述
打印机驱动程序本质上是一个中间软件,它将操作系统和打印机硬件连接起来。可以基于 Windows 或 Linux 打印子系统开发。
- Windows:基于 Windows 驱动开发包(WDK)。
- Linux:基于 CUPS 打印系统。
步骤
-
下载并安装对应操作系统的开发工具包:
- Windows:安装 WDK。
- Linux:安装 CUPS(
sudo apt install cups
)。
-
开发驱动程序的主要组件:
- Device Interface:与操作系统交互。
- Spooler Communication:与打印队列交互。
- Rendering:将文档转换为打印机可读的格式。
-
示例:创建一个 Windows 虚拟打印驱动
- 在 WDK 中使用
Printer Driver Wizard
创建一个基本驱动项目。 - 编写打印数据的过滤器(
RenderModule
)。 - 实现打印前拦截功能,在数据发送到打印机之前调用授权验证模块。
- 在 WDK 中使用
2. 登录授权功能开发
实现方案
将登录授权功能集成到打印数据过滤器中。在用户提交打印任务时,拦截数据流并检查用户是否已通过登录授权。
关键点
-
用户验证服务:
- 开发一个用户验证 API(HTTP REST 服务或嵌入式数据库验证)。
- 提供登录接口,验证用户名和密码。
-
拦截打印请求:
- 在打印数据过滤器中拦截任务,调用验证 API。
- 未通过验证的任务直接拒绝。
-
授权缓存:
- 减少频繁登录的麻烦,可在本地缓存已授权用户会话(例如基于 JWT)。
示例代码(Python Flask 实现验证服务)
from flask import Flask, request, jsonify
app = Flask(__name__)
# 简单的用户数据库
users = {"user1": "password123", "admin": "adminpass"}
# 登录接口
@app.route('/login', methods=['POST'])
def login():
data = request.json
username = data.get("username")
password = data.get("password")
if users.get(username) == password:
return jsonify({"status": "success", "token": "fake-jwt-token"}), 200
return jsonify({"status": "failed", "message": "Invalid credentials"}), 401
# 验证授权接口
@app.route('/authorize', methods=['GET'])
def authorize():
token = request.headers.get("Authorization")
if token == "Bearer fake-jwt-token":
return jsonify({"status": "authorized"}), 200
return jsonify({"status": "unauthorized"}), 403
if __name__ == '__main__':
app.run(port=5000)
3. 打印管控功能开发
管控功能
-
打印队列管理:
- 拦截打印任务并记录任务信息(用户、时间、页数、文件名等)。
- 可选择暂停、取消打印任务。
-
打印日志记录:
- 记录用户的每一次打印操作,用于审计。
-
操作权限控制:
- 根据用户角色定义权限(如允许哪些用户使用打印机、限制页数等)。
实现方案
- 修改打印任务数据拦截模块,添加日志功能。
- 使用数据库(如 SQLite 或 MySQL)存储打印日志。
- 提供前端接口(如 Web 界面)供管理员查看和管理任务。
示例:CUPS 打印管控(Linux 环境)
CUPS 支持通过自定义过滤器控制打印任务。
-
配置过滤器
- 编写一个过滤器脚本(如 Python 或 Shell),用于打印前验证和日志记录。
- 配置
cupsd.conf
使用自定义过滤器。
-
过滤器脚本示例
#!/bin/bash LOGFILE="/var/log/print_log.txt" echo "New print job received" >> $LOGFILE echo "User: $AUTH_USER" >> $LOGFILE echo "Job Name: $JOB_NAME" >> $LOGFILE # 调用授权服务验证 RESPONSE=$(curl -s -H "Authorization: Bearer $CUPS_AUTH_TOKEN" http://localhost:5000/authorize) if echo "$RESPONSE" | grep -q "unauthorized"; then echo "Unauthorized print job, rejecting." >> $LOGFILE exit 1 fi echo "Authorized, proceeding with printing." >> $LOGFILE cat > /dev/usb/lp0
-
启用过滤器
修改/etc/cups/cupsd.conf
:<Location /printers> AuthType Default Require valid-user Filter my_filter.sh </Location>
4. 集成与部署
-
测试驱动功能:
- 确保基本打印功能正常。
- 验证用户未登录时无法打印,登录后正常打印。
-
部署打印服务:
- 在服务器端安装并配置驱动和授权服务。
- 客户端通过驱动程序访问打印机。
-
优化用户体验:
- 开发图形化界面或 Web 界面,方便用户登录和管理。
- 提供错误提示(如登录失败、权限不足等)。
5. 示例场景
场景:用户打印时需登录
- 用户通过客户端提交打印任务。
- 驱动拦截任务,调用登录授权接口验证用户。
- 如果验证通过,任务进入打印队列。
- 打印完成后,记录任务信息。
场景:管理员设置打印权限
- 通过 Web 管理界面,管理员查看打印日志。
- 设置用户权限,如限制页数、禁止某些用户访问打印机。
- 系统根据规则动态拦截或允许任务。
6. 总结
-
核心实现:
- 开发打印驱动或过滤模块。
- 集成授权服务,用于登录验证。
- 增加日志记录和队列管理功能。
-
技术栈:
- 驱动开发工具(WDK 或 CUPS)。
- 用户验证服务(REST API)。
- 数据存储(MySQL、SQLite)。
通过以上方案,可以实现对打印机的完整管控,确保只有通过登录授权的用户才能进行打印操作。