无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
12
返回列表 发新帖
楼主: chinaren12
打印 上一主题 下一主题

[求助] 刚刚在论坛看到一个共享打印机的好东西raw print server

  [复制链接]
31#
 楼主| 发表于 2022-9-9 15:47:44 | 显示全部楼层
zhuwg 发表于 2022-9-9 10:42
继续修改,参考路由器实现方法,
先发一段数据给打印机,再开始打印
数据已经被我写的程序里面如下

好的,测试后反馈给你。。
回复

使用道具 举报

32#
 楼主| 发表于 2022-9-9 15:48:39 | 显示全部楼层
今天我已经测试了佳能LBP2900,可以支持打印。

昨天测试了柯美的bizhub 15也可以打印。
回复

使用道具 举报

33#
 楼主| 发表于 2022-9-10 12:26:10 来自手机 | 显示全部楼层
本帖最后由 chinaren12 于 2022-9-10 18:45 编辑
小施 发表于 2022-9-10 00:11
https://github.com/frogmorecs/RawPrint

我下午看看,这个好像比rawprintserver更全面。
但是我没看明白这个怎么使用的。

RawPrint
.Net library to send files directly to a Windows printer bypassing the printer driver.
Send PostScript, PCL or other print file types directly to a printer.
Requires .Net 4 runtime on Windows XP to 10 and Server 2003 to 2012.
Usage:
    using RawPrint;    // Create an instance of the Printer    IPrinter printer = new Printer();    // Print the file    printer.PrintRawFile(PrinterName, Filepath, Filename);
Installation:
To install Raw Print, run the following command in the [color=var(--color-accent-fg)]Package Manager Console
PM> Install-Package RawPrint这个似乎不能单独使用呀。。。

点评

这个我在本贴25楼已经发过了, Send PostScript, PCL or other print file types directly to a printer. 大概功能和我提供那个print测试差不多, 直接发送PS或者PCL格式给打印机,问题是p1007只认RAW格式  详情 回复 发表于 2022-9-10 22:32
回复

使用道具 举报

34#
 楼主| 发表于 2022-9-11 10:39:54 | 显示全部楼层
zhuwg 发表于 2022-9-10 22:32
这个我在本贴25楼已经发过了,
Send PostScript, PCL or other print file types directly to a printer ...

我感觉那个不像一个完整的程序,应该是一部分。
回复

使用道具 举报

35#
 楼主| 发表于 2022-9-11 11:06:21 | 显示全部楼层
本帖最后由 chinaren12 于 2022-9-11 11:18 编辑
zhuwg 发表于 2022-9-10 22:32
这个我在本贴25楼已经发过了,
Send PostScript, PCL or other print file types directly to a printer ...

P1007可以打印了。打印测试页也可以,可以直接打印文档。
接近完美了。你可以把另外的HP打印机型号加进去了。

点评

感谢大神耐心测试,真是好消息 我测试发给p1007打印机一个任务,任务没自动消失, 但打印机也没反应,我就取消了打印任务, 不知道是不是p1007反应比较慢,还是我发送端配置有问题,  详情 回复 发表于 2022-9-11 20:33
回复

使用道具 举报

36#
 楼主| 发表于 2022-9-11 19:05:42 | 显示全部楼层
zhuwg 发表于 2022-9-9 10:42
继续修改,参考路由器实现方法,
先发一段数据给打印机,再开始打印
数据已经被我写的程序里面如下

如果把这些1006,1007,1008,1505,1005都写到这个小工具里面,那你要如何判断对应的打印机是什么型号呢?是根据名字呢?
还是根据USB对应的PID和VID呢?

点评

一般来说,大部分人不会改打印机的名字, 判断名字基本上可行 最严谨的方法肯定判断USB对应的PID和VID, 设备就靠PID和VID来识别和安装驱动的, 还有个最简单粗暴的方法,就是让用户选择, 也就是增加一个hp  详情 回复 发表于 2022-9-11 20:54
回复

使用道具 举报

37#
 楼主| 发表于 2022-9-11 21:15:13 来自手机 | 显示全部楼层
zhuwg 发表于 2022-9-11 20:54
一般来说,大部分人不会改打印机的名字,
判断名字基本上可行
最严谨的方法肯定判断USB对应的PID和VID ...

我觉得还是用打印机名字吧!毕竟通过pid和vid可能会加大难度和工作量。

点评

我随便找了一段代码,实测可以正常获取pid和gid, 但有个问题,如果安装了超过一台打印机看怎么识别  详情 回复 发表于 2022-9-11 22:36
回复

使用道具 举报

38#
 楼主| 发表于 2022-9-11 21:18:29 来自手机 | 显示全部楼层
zhuwg 发表于 2022-9-11 20:33
感谢大神耐心测试,真是好消息
我测试发给p1007打印机一个任务,任务没自动消失,
但打印机也没反应, ...

我这边是把打印机名字改为了p1007,刚开始第一次测试也没打出来,后面我排查了一下问题,是我两边的打印处理器设置不一样,后面我改了就可以了,我明天把两边的设置截图给你看。和你这个没有区别的,要说不同难道是ip地址不同?

点评

应该和ip地址没关系,倒是有可能是网络不稳定,又找到一些usb操作代码  详情 回复 发表于 2022-9-11 23:25
回复

使用道具 举报

39#
 楼主| 发表于 2022-9-12 09:36:56 | 显示全部楼层
zhuwg 发表于 2022-9-11 23:49
搜索一下发现还有一堆操作usb的lib,
openwrt路由器或者Linux下估计就是通过这些直接发给usb的,
理论上w ...

我刚刚又测试了一遍,P1007确实可以打印了。但是,有一个小小的问题。

就是如果实际连接打印机的电脑不打印,共享的电脑打印的话,第一次打印不会成功。按了打印之后,打印会有一个短暂的唤醒动作,然后就没反应了。

把这个文档取消掉,第二个文档就能正常打印出来了。

我昨天测试的时候也是一样,第一次测试打印机没打印出来,当把打印的文档取消掉后,再在链接打印机的电脑上打印一张测试页,后面就能正常打印了。

点评

找了一些资料,大概意思是hp这一系列打印机要先发固件过去,打印机才能进正常工作状态, 也就是打印机开机之后如果从没打印过,第一次发固件过去,估计打印机要消耗一段时间运行固件, 之后才可以正常打印 我修改  详情 回复 发表于 2022-9-12 23:54
回复

使用道具 举报

40#
 楼主| 发表于 2022-9-13 12:00:06 | 显示全部楼层
zhuwg 发表于 2022-9-13 10:19
修改了一下,在服务启动时候,执行InitHp发送一段数据过去,
请再试试能不能一次打印成功

不能一次打印成功,我刚刚测试了,虽然rawprintserver一开始给了代码初始化了打印机,但是打印的时候打印直接没有任何反应。

点评

加了一行FlushPrinter,请测试看看, win下打印API相关的参考资料不是太多, Linux下的比较多  详情 回复 发表于 2022-9-13 15:44
回复

使用道具 举报

41#
 楼主| 发表于 2022-9-14 09:00:39 | 显示全部楼层
Climbing 发表于 2022-9-13 16:33
我觉得应该单独写一个小程序,专门用于初始化这些特殊的打印机,让这些程序和代码独立于Raw Print Server ...

版主这方法好。。。。。
回复

使用道具 举报

42#
 楼主| 发表于 2022-9-14 09:01:37 | 显示全部楼层
zhuwg 发表于 2022-9-13 15:44
加了一行FlushPrinter,请测试看看,
win下打印API相关的参考资料不是太多,
Linux下的比较多

好的,测试了给反馈给你
回复

使用道具 举报

43#
 楼主| 发表于 2022-9-17 17:27:29 | 显示全部楼层
zhuwg 发表于 2022-9-13 15:44
加了一行FlushPrinter,请测试看看,
win下打印API相关的参考资料不是太多,
Linux下的比较多

老哥,刚刚测试,还是不行,不能一次打印成功,必须在连接打印机的电脑上打印一张,然后网络打印才能OK,如果不这样做的话,打印机就没反应。

点评

估计还有数据要发给打印机用于初始化  详情 回复 发表于 2022-9-18 23:24
回复

使用道具 举报

44#
 楼主| 发表于 2022-9-19 12:51:41 | 显示全部楼层
zhuwg 发表于 2022-9-18 23:24
估计还有数据要发给打印机用于初始化,我再看看Linux的代码

好的,谢谢
回复

使用道具 举报

45#
 楼主| 发表于 2023-7-22 15:38:39 | 显示全部楼层

没有,不是winprint的打印机都不能用,hp早期的,佳能早期的都不能用。
回复

使用道具 举报

46#
 楼主| 发表于 2024-1-14 14:31:40 | 显示全部楼层
bijiaolan 发表于 2023-11-21 16:05
这个源码比较新:
github.com/taylorza/WinPrintServer

感谢感谢,我去看看,其实这个软件还是挺实用的。就是作者似乎已经放弃了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-21 13:51

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表