无忧启动论坛

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

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

  [复制链接]
91#
发表于 2022-9-7 11:36:31 | 只看该作者
chinaren12 发表于 2022-9-7 11:18
我去,为什么我不能成功呢?你什么打印机型号

我测试的是联想M7250N的打印机,服务端安装的网络打印机,USB没测试,感觉应该也没问题。
回复

使用道具 举报

92#
发表于 2022-9-7 12:07:06 | 只看该作者
chinaren12 发表于 2022-9-7 11:18
我去,为什么我不能成功呢?你什么打印机型号

我测试HP LaserJet P1007也没反应,不知道哪里有问题

点评

老哥,我晚点测试后给你回信。。。  详情 回复 发表于 2022-9-7 14:03
在第一臺機上鍵入dir>\\127.0.0.1\p1007的結果是什麼?  发表于 2022-9-7 13:40
回复

使用道具 举报

93#
 楼主| 发表于 2022-9-7 14:03:20 | 只看该作者
zhuwg 发表于 2022-9-7 12:07
我测试HP LaserJet P1007也没反应,不知道哪里有问题

老哥,我晚点测试后给你回信。。。

点评

使用Port Monitor工具,监听9100端口发过来的内容, 对于P1007打印机, 如果是如下这种XQX开头的PS格式,有可能可以打印, 某些比较新的打印机甚至可以直接接受PDF格式  详情 回复 发表于 2022-9-8 11:54
回复

使用道具 举报

94#
发表于 2022-9-7 16:18:40 | 只看该作者
kk
回复

使用道具 举报

95#
发表于 2022-9-7 16:45:43 | 只看该作者
邪恶海盗 发表于 2022-9-4 10:16
什么年代了还用共享,用路由刷个鸡作USB打印服务器不香么???

有详细方案没

点评

搜索一下大把,假货宝买现成的也可以  详情 回复 发表于 2022-9-7 16:56
回复

使用道具 举报

96#
发表于 2022-9-7 16:56:09 | 只看该作者

搜索一下大把,假货宝买现成的也可以

点评

使用稳定不  详情 回复 发表于 2022-9-8 10:00
这软件方案如果能完善的话,也不失为一种很好的替代方法呀。。。  详情 回复 发表于 2022-9-7 22:23
回复

使用道具 举报

97#
发表于 2022-9-7 17:20:29 | 只看该作者
谢谢分享,期待大神修复出新品
回复

使用道具 举报

98#
发表于 2022-9-7 20:32:44 | 只看该作者
谢谢分享
回复

使用道具 举报

99#
 楼主| 发表于 2022-9-7 22:23:55 | 只看该作者
邪恶海盗 发表于 2022-9-7 16:56
搜索一下大把,假货宝买现成的也可以

这软件方案如果能完善的话,也不失为一种很好的替代方法呀。。。

点评

我搜索一下是有人反映能用也有人说不能用, 可能真和打印机型号或者驱动有关系, 利用路由器usb口接打印机的方法我也知道, 但好些公司不允许个人接路由器到公司内网  详情 回复 发表于 2022-9-7 22:39
回复

使用道具 举报

100#
发表于 2022-9-7 22:39:59 | 只看该作者
chinaren12 发表于 2022-9-7 22:23
这软件方案如果能完善的话,也不失为一种很好的替代方法呀。。。

我搜索一下是有人反映能用也有人说不能用,
可能真和打印机型号或者驱动有关系,
利用路由器usb口接打印机的方法我也知道,
但好些公司不允许个人接路由器到公司内网

点评

是的,打印服务器我有很多种,但总有碰到不想花钱的人的。这时候就可以派上用场了。  详情 回复 发表于 2022-9-7 22:55
回复

使用道具 举报

101#
 楼主| 发表于 2022-9-7 22:55:39 | 只看该作者
zhuwg 发表于 2022-9-7 22:39
我搜索一下是有人反映能用也有人说不能用,
可能真和打印机型号或者驱动有关系,
利用路由器usb口接打 ...

是的,打印服务器我有很多种,但总有碰到不想花钱的人的。这时候就可以派上用场了。

点评

我从MS网站上找了一段代码, 随便打开一个文件,选择hp1007打印机,打印到文件,之后保存为test1, 再用这个程序输出到打印机,一切正常, 我怀疑是不是网络传输问题 测试程序和源码我都放附件了你看看, 命令  详情 回复 发表于 2022-9-8 10:29
回复

使用道具 举报

102#
发表于 2022-9-8 10:00:22 | 只看该作者
邪恶海盗 发表于 2022-9-7 16:56
搜索一下大把,假货宝买现成的也可以

使用稳定不

点评

我有个同学公司装上用了几年了,除了电脑设置问题导致不能打印外,无任何感知...  详情 回复 发表于 2022-9-8 10:08
回复

使用道具 举报

103#
发表于 2022-9-8 10:08:11 | 只看该作者

我有个同学公司装上用了几年了,除了电脑设置问题导致不能打印外,无任何感知...
回复

使用道具 举报

104#
发表于 2022-9-8 10:29:48 | 只看该作者
chinaren12 发表于 2022-9-7 22:55
是的,打印服务器我有很多种,但总有碰到不想花钱的人的。这时候就可以派上用场了。

我从MS网站上找了一段代码,
随便打开一个文件,选择hp1007打印机,打印到文件,之后保存为test1,
再用这个程序输出到打印机,正常打印出来了
我怀疑是不是网络传输问题
测试程序和源码我都放附件了你看看,
命令是print "HP LaserJet P1007" test1

测试打印成功.png (9.61 KB, 下载次数: 69)

测试打印成功.png

print.rar

24.61 KB, 下载次数: 15, 下载积分: 无忧币 -2

点评

[attachimg]507150[/attachimg]i 这个工具可以把转换成文件了的内容通过打印机打出来。  详情 回复 发表于 2022-9-8 13:37
回复

使用道具 举报

105#
发表于 2022-9-8 10:34:00 | 只看该作者
路由器刷Openwrt 安装luci-app-usb-printer 插件
回复

使用道具 举报

106#
发表于 2022-9-8 11:00:12 | 只看该作者
大佬们的研究过程很有意思,感谢
回复

使用道具 举报

107#
发表于 2022-9-8 11:53:15 | 只看该作者
今天找时间试了一下原始的1.0版本,使用命令行安装时,需要注意,对应的服务项中的ImagePath只指定了"RawPrintServer.exe",而没有指明路径,所以,要么将这个可执行文件复制到Windows的系统目录下,或者就修改一下对应服务的注册表值,将可执行文件路径补全,然后启动服务。

运行RawPrintServer.exe的是一台win10,我在win7_x86和win11上测试了一下,跟正常安装网络打印机类似,最好手工指定IP地址,确认端口是9100,然后安装正确的驱动即可。打印一切正常。

在win10下好用,意味着win7/11下也没有问题,不需要修改原程序。

点评

为什么我测试还是不行,能否说下详细安装方法。  详情 回复 发表于 2022-9-8 13:07
班主,你的是什么打印机  详情 回复 发表于 2022-9-8 12:27
回复

使用道具 举报

108#
发表于 2022-9-8 11:54:47 | 只看该作者
本帖最后由 zhuwg 于 2022-9-8 11:56 编辑
chinaren12 发表于 2022-9-7 14:03
老哥,我晚点测试后给你回信。。。
仔细测试发现WritePrint代码其实没问题,是发过去的数据打印机不认识,某些比较老的打印机支持的格式很少
使用Port Monitor工具,监听9100端口发过来的内容,
对于P1007打印机,
如果是如下这种XQX开头的PS格式,有可能可以打印,
某些比较新的打印机甚至可以直接接受PDF格式输入

XQX.png (77.28 KB, 下载次数: 62)

XQX.png

点评

所以,能否添加支持HP打印机的代码?老哥。。。。  详情 回复 发表于 2022-9-8 14:20
[attachimg]507158[/attachimg] 老哥,我用另外一台打印机测试了。柯尼卡美能达bizhub 15能正常打印。 但是hp p1007还是不能正常打印。当你通过网络打印到p1007时,p1007的打印机能唤醒。但仅仅限于唤醒。唤  详情 回复 发表于 2022-9-8 14:09
回复

使用道具 举报

109#
 楼主| 发表于 2022-9-8 12:27:27 来自手机 | 只看该作者
Climbing 发表于 2022-9-8 11:53
今天找时间试了一下原始的1.0版本,使用命令行安装时,需要注意,对应的服务项中的ImagePath只指定了"RawPr ...

班主,你的是什么打印机

点评

Brother Fax-2890,一台传真机,当打印机使用。  详情 回复 发表于 2022-9-8 13:29
回复

使用道具 举报

110#
发表于 2022-9-8 12:31:41 来自手机 | 只看该作者
单位现在不让用共享器,后面用xlpd共享,不过例如lbp2900这种用xlpd没法共享,不知道这个可以不

点评

xlpd共享怎么设置才能成功打印呢,能分享下经验吗  详情 回复 发表于 2022-9-8 22:37
回复

使用道具 举报

111#
发表于 2022-9-8 13:07:46 | 只看该作者
Climbing 发表于 2022-9-8 11:53
今天找时间试了一下原始的1.0版本,使用命令行安装时,需要注意,对应的服务项中的ImagePath只指定了"RawPr ...

为什么我测试还是不行,能否说下详细安装方法。

点评

大家都知道Windows的打印共享一直属于玄学,2000/XP/2003(NT 5.x)及以前的时代基本还算正常,经过简单的设置总能搞定,自从Vista开始的NT 6.x,尤其到了win10/win11时代,Windows的打印共享基本上就变成了玄学,姑  详情 回复 发表于 2022-9-8 13:30
回复

使用道具 举报

112#
发表于 2022-9-8 13:29:59 | 只看该作者
chinaren12 发表于 2022-9-8 12:27
班主,你的是什么打印机

Brother Fax-2890,一台传真机,当打印机使用。
回复

使用道具 举报

113#
发表于 2022-9-8 13:30:33 | 只看该作者
357734620 发表于 2022-9-8 13:07
为什么我测试还是不行,能否说下详细安装方法。

大家都知道Windows的打印共享一直属于玄学,2000/XP/2003(NT 5.x)及以前的时代基本还算正常,经过简单的设置总能搞定,自从Vista开始的NT 6.x,尤其到了win10/win11时代,Windows的打印共享基本上就变成了玄学,姑且不说很难搞定,就算搞定了,一个补丁也可能把它搞残废。另外,Windows的共享服务一直存在各种安全漏洞,曾经一度被勒索病毒利用,尤其是win7(不能打补丁那种),为了安全,我一般都禁用server服务。

但自带网络接口的打印机从来没有这么复杂,指定IP(端口基本上就是基于raw的9100),安装驱动即可搞定,完全跳过了复杂的samba协议,直接使用TCP/IP。如同在Windows下通过http或者ftp共享文件,完全不需要考虑Windows那复杂的共享机制。

但并不是所有的打印机都带网络接口,虽然现在可以买一个便宜的可以刷固件的路由器(比如坛子里15块收的优酷路由宝刷Padavan或者OpenWRT)当打印服务器使用,但毕竟硬件都不是现成的,而且,投入再小也得投入不是。

那能不能将Windows直接变成类似的打印服务器呢?答案是:Raw Print Server。这是一个开源的命令行程序,官方网站:https://sourceforge.net/projects ... les/RawPrintServer/ 。注意,下载1.0版本, 不要下载那个beta版。附件中也附上了1.0版本的可执行程序及程序源码。

Github项目链接:https://github.com/miso-lims/rawprintserver  (这程序从2006年就停止开发了)。

<b>基本操作流程:</b>

1、在作为打印服务器的Windows上安装好打印机,以HP LaserJet P1008为例,装好打印机时,最好给打印机改一个简短的名字,例如叫:HP1008。

2、将rawprintserver.exe复制到Windows的system32目录。

3、管理员cmd模式下执行:rawprintserver.exe install "HP1008"。注意,这里的打印机名称一定要跟你Windows控制面板中显示的打印机名称一样。该程序会安装一个rawprintserver服务,如果你在上一步操作中没有将该文件复制到system32目录,那就需要修改下对应服务注册表项中的ImagePath项,将该程序的全路径写入,否则服务启动不了。

4、在打印客户端按添加网络打印机的流程(自动搜索肯定是搜不到的,所以需要手工操作),指定IP地址,默认raw:9100,然后手工指定打印机驱动安装即可。

5、搞定!

6、软件运行的日志强行锁死在c:\PrintServer.log,如果出现什么错误,可以查看该日志。

我试过在win10下安装rawprintserver,win7_x86和win11都可以正常连接并使用。

点评

另外可以考慮的一個方案是MS的LPD服務,VISTA的時代爲解決不同平臺相互間的打印,我用過。新的操作系統中仍然有這個東西,應該仍然可用的。  发表于 2022-9-8 15:58
版主可以试试我修改的版本,在本帖子88楼 不需要手动设置ImagePath了,自动获取, 源代码也在里面,可以修改日志位置  详情 回复 发表于 2022-9-8 15:39
回复

使用道具 举报

114#
 楼主| 发表于 2022-9-8 13:37:35 | 只看该作者
zhuwg 发表于 2022-9-8 10:29
我从MS网站上找了一段代码,
随便打开一个文件,选择hp1007打印机,打印到文件,之后保存为test1,
再 ...

i

这个工具可以把转换成文件了的内容通过打印机打出来。
回复

使用道具 举报

115#
 楼主| 发表于 2022-9-8 13:38:39 | 只看该作者
felixatvan 发表于 2022-9-7 05:48
刚用Lexmark E250dn在两台Win11机上测试了,使用的是Lexmark Universal Driver.  两边Windows 测试打印都 ...



用你给的命令测试无法成功。

点评

如果你是在第一臺機上執行這條指令的話,請確認P1007是共享了。如果成功的話再作後面的測試,  发表于 2022-9-8 14:44
回复

使用道具 举报

116#
 楼主| 发表于 2022-9-8 14:09:59 | 只看该作者
zhuwg 发表于 2022-9-8 11:54
仔细测试发现WritePrint代码其实没问题,是发过去的数据打印机不认识,某些比较老的打印机支持的格式很少
...




老哥,我用另外一台打印机测试了。柯尼卡美能达bizhub 15能正常打印。

但是hp p1007还是不能正常打印。当你通过网络打印到p1007时,p1007的打印机能唤醒。但仅仅限于唤醒。唤醒之后就没有任何动作了。

所以,可能这个远程打印软件就不兼容HP的打印机,或者不兼容hp的老型号打印机。

点评

不知道你記不記得在DOS向Windows轉的時候有DOS打印機和windows打印機的說法,windows打印機在DOS的環境下無法打印,  发表于 2022-9-8 15:01
回复

使用道具 举报

117#
 楼主| 发表于 2022-9-8 14:20:39 | 只看该作者
zhuwg 发表于 2022-9-8 11:54
仔细测试发现WritePrint代码其实没问题,是发过去的数据打印机不认识,某些比较老的打印机支持的格式很少
...

所以,能否添加支持HP打印机的代码?老哥。。。。

点评

翻了不少资料大概理解了打印机工作过程, 资料说WritePrint会不经过驱动程序直接发送文件给打印机 打个比方吧,有甲乙丙三个人,甲是翻译,乙是快递员,丙是打字员, 我们把PDF文件交给甲, 甲会翻译成GDI格式让  详情 回复 发表于 2022-9-8 17:52
测试发现问题出在发送的机器这边, 首先在本机选择p1007打印到文件,保存为test1, 然后执行 nc 192.168.1.2 9100  详情 回复 发表于 2022-9-8 17:15
参考https://t2.re/archives/708/ https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=212810&page=1 以及https://oldwiki.archive.openwrt.org/doc/howto/p910nd.server https://plugout.net/viewtop  详情 回复 发表于 2022-9-8 15:14
回复

使用道具 举报

118#
发表于 2022-9-8 15:14:32 | 只看该作者
chinaren12 发表于 2022-9-8 14:20
所以,能否添加支持HP打印机的代码?老哥。。。。

参考https://t2.re/archives/708/
https://www.right.com.cn/forum/f ... d&tid=212810&page=1
以及https://oldwiki.archive.openwrt.org/doc/howto/p910nd.server
https://plugout.net/viewtopic.php?f=12&t=2161&start=10

发现HP 1000 1005 1018 1020打印机这一系列,需要先给打印机发一个文件
让打印机进工作状态,才能开始打印
能够打印的关键步骤:cat /usr/lib/sihpP1007.dl > /dev/usb/lp0, 就是要把固件上传到打印机才行
手动执行是nc -q2 192.168.2.99 9100 < /usr/share/foo2zjs/firmware/sihp1020.dl
根据不同的型号发sihp1020.dl或者sihpP1007.dl
然后打印机设置禁用双向模式
  1. FIRMWARE="/usr/lib/sihp1020.dl"  (replace with the real path)
  2. DEVICE=/dev/lp0
  3. LOGFILE=/var/log/hp

  4. for i in $(seq 30); do
  5.      if [ -c $DEVICE ]; then
  6.             /bin/echo "$(date) : Sending firmware to printer." > $LOGFILE
  7.             /bin/cat $FIRMWARE > $DEVICE
  8.             /bin/echo "$(date) : done." >> $LOGFILE
  9.              exit
  10.       fi
  11.       sleep 1
  12. done
复制代码
上面这个是使用路由器USB连接,每次打印要先发sihpP1007.dl过去

sihp1007-1020.rar

207.66 KB, 下载次数: 3, 下载积分: 无忧币 -2

回复

使用道具 举报

119#
发表于 2022-9-8 15:18:55 | 只看该作者
昨天就基本搞定了,不会咔哒咔哒响了,也不会重复打印了,而且打印任务也能正常停止,也没有用到usb_printerid(需要交叉编译),但是不太稳定的地方是:有时打印任务出不来,打印测试页每次都OK,但是有时word和Excel的任务出不来。
关键步骤就是:在Windows中去掉“双向打印”的对勾即可。

考虑到目前对于共享打印的诉求不是太强烈,暂时放弃了。以后有机会再试试CUPS,不过好像OpenWRT官方停止对CUPS的支持了。



我把用到的脚本贴上来,供大家参考一下,强烈建议大家仔细看原帖的内容,这些脚本都是从那儿COPY过来修改的:

/etc/config/p910nd, 是不需要修改的!

/etc/hotplug.d/usb/10-printer

#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
if [ "$PRODUCT" ="3f0/4817/100" ]
then
case "$ACTION" in
        add)
        /etc/init.d/p910nd stop
        echo "`date`: HP LaserJet P1007 added" >> /tmp/hp-1007
        /etc/init.d/p910nd start >> /tmp/hp-1007
        echo "Done." >> /tmp/hp-1007
        ;;
        remove)
        echo "`date`: HP LaserJet P1007 removed" >> /tmp/hp-1007
        /etc/init.d/p910nd stop >> /tmp/hp-1007
        echo "Done." >> /tmp/hp-1007
        ;;
esac
fi

上述命令成功了,插拔打印机之后,有反应。

/etc/hotplug.d/usb/10-hplj1007

#!/bin/sh

set -e

# change this to the location where you put the .dl file:
FIRMWARE="/usr/lib/sihpP1007.dl"
DEVICE=/dev/usb/lp0
LOGFILE=/tmp/hp-fm

if [ "$PRODUCT" = "3f0/4817/100" -a "$ACTION" = "add" ]; then
        for i in $(seq 30); do
                if [ -c $DEVICE ]; then
                        echo "$(date) : Sending firmware to printer…" > $LOGFILE
                        cat $FIRMWARE > $DEVICE
                        echo "$(date) : done." » $LOGFILE
                        exit
                fi
                sleep 1
        done
fi

上述脚本也可以用,但是同样会不停的打印,而且打印任务也无法结束。

针对HP的GDI系列,应该改为下列的样子

#!/bin/sh

set -e

# change this to the location where you put the .dl file:
FIRMWARE=/usr/lib/sihpP1007.dl
DEVICE=/dev/usb/lp0
LOGFILE=/tmp/hp-fm

if [ "$PRODUCT" = "3f0/4817/100" -a "$ACTION" = "add" -a "$DEVTYPE" = "usb_interface" ]; then
   echo "$(date): STARTING" > $LOGFILE
   for i in $(seq 30); do
       echo "$(date): Attempt number $i on $DEVICE" » $LOGFILE
       if [ -c $DEVICE ]; then
          echo "$(date): Device $DEVICE found." » $LOGFILE
          if [ -z "`usb_printerid $DEVICE | grep FWVER`" ]; then
              echo "$(date): No firmware found on $DEVICE" » $LOGFILE
              echo "$(date): Sending firmware to printer…" » $LOGFILE
              cat $FIRMWARE > $DEVICE
              echo "$(date): done." » $LOGFILE
          else
              echo "$(date): Firmware already there on $DEVICE" » $LOGFILE
          fi
          echo "$(date): EXITING" » $LOGFILE
          exit
       fi
       sleep 1
    done
fi
上面是连接路由器的代码,先保存到论坛上,再看看怎么改造一下给win使用

回复

使用道具 举报

120#
发表于 2022-9-8 15:39:58 | 只看该作者
Climbing 发表于 2022-9-8 13:30
大家都知道Windows的打印共享一直属于玄学,2000/XP/2003(NT 5.x)及以前的时代基本还算正常,经过简单 ...

版主可以试试我修改的版本,在本帖子88楼
不需要手动设置ImagePath了,自动获取,
源代码也在里面,可以修改日志位置

点评

谢谢。修改ImagePath倒不是什么大问题。关键是我没有编译环境,有源代码也没用。至于log的位置,完全可以建link解决,也不算大问题。  详情 回复 发表于 2022-9-8 17:37
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-14 07:59

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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