基于开源项目二次开发KKPrinter实现打印机共享,远程跨网络实现不同网络打印机共享,客户端利用虚拟打印机截取打印文件转发至物理打印机(附源码)

基于开源项目二次开发KKPrinter实现打印机共享,远程跨网络实现不同网络打印机共享,客户端利用虚拟打印机截取打印文件转发至物理打印机(附源码)。实现方案有很多种,这里主要介绍 2 种,并附详细的实现过程和提供需要的源码下载。


题外话,首先分享一个在线PDF工具箱,功能非常全非常好用:
https://tools.pdf24.org/en/all-tools


一、实现思路简介

要实现标题所写的目标,需要按照下面的步骤来进行:

1、开发虚拟打印机程序

跟普通的打印机驱动一样,安装完后可以在“打印机”里看到本打印机,第三方软件也能通过点“打印”选择该打印机。打印时完成两个处理:一是生成pdf文件,二是把文档送到真实打印机进行打印。

2、开发把打印文件上传到服务器的程序

这个程序是一个服务,要一直运行。程序会实时监测是否有虚拟打印机生成的PDF文件,如果有则立即进行上传到服务器的操作。

二、打印机相关案例介绍

1、利用虚拟打印机把打印内容上传到服务器并输出给物理打印机(一)

A 运行环境:win7/win10

B 打印内容转成文件格式:JPG

C 文件上传通讯协议:https、post

D 物理打印机类型:热敏

E 连接的物理打印机台数:1台

2、利用虚拟打印机把打印内容上传到服务器并输出给物理打印机(二)

A 运行环境:win7/win10

B 打印内容转成文件格式:PDF

C 文件上传通讯协议:https、post

D 物理打印机类型:热敏

E 连接的物理打印机台数:4台(纸的尺寸不同)

3、打印机驱动程序开发

A 运行环境:win7/win10

B 打印机类型:热敏

C 打印数据传递:串口

D 参数设定:调用打印机的SDK来设定

4、利用PJL命令控制打印机参数

A 运行环境:win7/win10

B 打印机类型:喷墨

C 打印数据传递:串口

D 命令实现功能:设定打印机的灰度、单双面、份数等

5、打印内容偏移的矫正

A 运行环境:win7/win10

B 打印机类型:热敏

C 打印数据传递:串口

D 问题描述:打印内容随着打印份数增加偏移增大


方案一:

基于开源项目clawpdf二次开发,实现我们的功能。clawpdf项目开源但并不免费,一般人根本没法直接从github下载后运行,他有各种坑,还有文件签名,我也是花了很久的时间才弄好,在它的基础上做了一些新的业务实现,并命名为KKPrinter,但是大部分代码任然是clawpdf的,在这里说明。

打开项目目录,双击 clawpdf.sln 启动项目,如图所示:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

打开一个文档,按 Ctrl + P 调出打印机列表,如下图:

在这里插入图片描述

上面的打印机驱动 数量 和 名称,可以在代码里面进行控制,这里为了尊重开源项目,我就用了原来的名称。

有两种方式把拦截到的打印机文件转发到物理打印机所在电脑:
1)HTTP请求;
2)Ftp请求;
在这里插入图片描述

在物理打印机监听到文件后,直接使用共享的打印机或者默认的打印机对文件进行打印,这里主要用到一个核心库:PdfPrintingNet.dll 。这样就可以实现在物理打印机电脑自动打印文件,不需要人为干预。

在这里插入图片描述
自动打印D盘目录下的文件,通过下面简单demo可以进行测试:

在这里插入图片描述
上面两个程序,一个放在 物理打印机所在的电脑,一个 放在需要使用远程打印机的电脑,中间用一个公网服务器通过 http 或者 ftp 把他们的文件进行传输,即可实现我们的目标。

完整源码下载地址:
点击下载


方案二:

基于修改系统注册表中的打印机属性参数实现,其原理都是差不多,都是通过虚拟打印机拦截用户的打印机文件,转发到物理打印机进行打印。这种方案也测试过,就是不能完全保留打印时候的全部属性参数,比如只能保留部分参数 比如 页码等等。

打开项目目录,双击 clawpdf.sln 启动项目,如图所示:

在这里插入图片描述
在这里插入图片描述
运行后,选择一个需要进行共享的打印机,这里通过 磁盘文件共享的方式代替 HTTP 和 ftp 访问文件传输,而且 把 共享端 和 使用端放在了一起,只需 选中一个文档,Ctrl + P 打印对话框,选择虚拟打印机,文件会自动用 物理打印机打印出来,实现了我们的目标。
在这里插入图片描述
点击本地打印机测试,即共享本地了打印机,可以根据需要进行更改业务逻辑实现自动化。

在这里插入图片描述

添加虚拟打印机到本地:

在这里插入图片描述
文档打印对话框中,选择 安装的虚拟打印机:

在这里插入图片描述
经过测试,可以完成我们的目标。

完整源码下载地址:
点击下载


以上是市面上使用的技术方案,比如 森雀云 等等。


我们团队有更高级的实现方案,有需要可以私聊。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码讲故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值