企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 办公打印共享打印机软件 #### 介绍 简单的在线打印[局域网、广域网免驱动共享打印机方案] ## 使用方法 I. 下载本项目 在打印机连接的电脑下载本项目,关闭360等杀毒软件,打开并安装,安装好后打开桌面上`共享打印系统`(如果提示"访问拒绝",请使用管理员权限打开) 其他原因打不开,可能是没有安装.NET组件,下载地址: https://dotnet.microsoft.com/zh-cn/download/dotnet-framework/thank-you/net48-offline-installer Ⅱ、原理介绍 ### 远程打印原理: 原理如下图 ![](https://img.kancloud.cn/59/2a/592ac5a1563ed81efbea44f389392897_587x402.png) PDF等办公类文件存放于业务服务器,当需要打印时,请求Socket服务器,Socket服务器通过预先建立的TCP连接发送消息给打印机连接的电脑,电脑收到消息后通过Http协议下载文件并处理成打印机数据,发给打印机完成打印。 * 打印文件的URL地址,**必需是公网可访问的地址**。 * Socket服务器实现可参照开源项目:https://www.workerman.net/web-sender ``` # 后端调用api向前端推送打印消息 <?php // 指明给谁推送,为空表示向所有在线用户推送 $to_uid = ""; // 推送的url地址,使用自己的服务器地址 $push_api_url = "http://xxx.net:2121/"; $post_data = array( "type" => "publish", "content" => '{"url":"https://baidu.com/test.pdf"}', "to" => $to_uid, ); $ch = curl_init (); curl_setopt ( $ch, CURLOPT_URL, $push_api_url ); curl_setopt ( $ch, CURLOPT_POST, 1 ); curl_setopt ( $ch, CURLOPT_HEADER, 0 ); curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, 1 ); curl_setopt ( $ch, CURLOPT_POSTFIELDS, $post_data ); curl_setopt ( $ch, CURLOPT_HTTPHEADER, array("Expect:")); $return = curl_exec ( $ch ); curl_close ( $ch ); var_export($return); ``` 即时性要求不太高的业务,可使用轮询实现 电脑客户端会在30s请求一次服务器获取打印消息,如没有消息,则服务器返回{"url":""},如有消息,返回{"url":"your pdf url"},客户端收到后则请求文件服务器获取文件 ### 浏览器\web\网页打印原理 原理是通过在电脑上安装一个客户端,然后通过浏览器与之通信实现本地静默打印。 ![](https://img.kancloud.cn/ef/e7/efe7de5c2265e6d908dc0ca2b28d8aaa_587x402.png) 客户端相当于一个本地server,本机浏览器通过ajax访问本地server,发送文件地址以及者打印相关信息给这个本地server,本地server再通过文件地址下载需要打印文件,再发送给打印机实现打印。本地server由于是本地客户端,权限高,能够调用操作系统丰富的API,从而实现浏览器实现不了的一些功能,比如打印PDF文件,打印订单收银小票等 Ⅲ、演示 客户可下载此客户端到电脑安装,电脑连接好打印机 并设置为默认打印机 替换链接中的文件地址,打开此链接 ,`https://console.ushengyun.com/account/push?id=1639643778000&msg={"url":"your url"}` 打印机会完成打印