如何得到另一台机的打印输出数据?(150分)

T

Thinboy

Unregistered / Unconfirmed
GUEST, unregistred user!
如何得到另一台机的打印输出数据?

现在有一台机用于打印文本资料的,但是我现在不想打到纸张上,
想打到一个文件中,但这台机器没可能重定向到文件中的了!只可以
且唯一可以输出到打印机中!
我有个想法:找多一台机器,捕获这台机的打印输出,再录入到
文件中。但关键是如何捕获资料呢?如何知道打印口输出什么?
只可以
谢谢!
 
需要知道你的操作系统, 文本输出方式.
 
Unix,就是文本方式
如果是win95呢?又如何?
Thank you!
 
你用的是什么打印机?
真要这样,还得清楚你的打印机的控制信号的内容!
基本上是在做与打印机驱动程序相反的工作!
最麻烦的还是在Windows下,
打印过程基本上是把所要打印的东西变为点阵信息或矢量信息,再打印
这样,还原的就很麻烦了。

看看谁还有高见!
 
没什么好办法的
WIN 不是可以打印到文件吗?在设置断口时,没试过效果。
UNIX 不熟
 
WIN 是可以打印到文件!
可惜这个过程好象不是可逆的!
或者这个文件的格式谁知道!
 
呵呵, 试试这样, 使用FINEPRINT ENTERPRISE, 它好象支持输出到文件.
 
接根打印电缆,取出对应得Data Pin的信号,分析它,并转存起来。够麻烦的!
 
自己做个打印驱动,让程序打印到你的打印机中,你说的类似传真软件所使用的
方法。
 
我想出了一个方法,明天告诉你.八成能行,只是价钱可否再贵点儿?^^
 
如果在win95下,可以打印到文件,文件后缀名好像是*.prn(忘了),不过你可以
把这个文件拿到别的机器上,用下面命令打印:

copy xxx.prn prn
 
昨天想了一下,今天试了一下,希望对你有帮助.
如果有用,请支援一下新人,打破鸭蛋O :&).

我试了一下在Win95下的情况.
根据打印机后台打印数据格式分两种情况:

一.RAW:此时打印作业直接打印到打印缓冲:/Windows/Spool/Printers目录下
形式如:00001.shd和00001.spl(此处以打印测试页为例)

00001.shd内容类似下面:(用NotePad.exe打开)

KI  T U V h { ? ? ?   
 d ?  Printer Test Page Panasonic
KX-P1131 Panasonic KX-P1131 WinPrint RAW

其中:WinPrint RAW 表明采用RAW方式

00001.spl内容即为具体内容.(用NotePad.exe打开为乱码)

这种情况下只要将两个文件拷到另外一台计算机上的相应目录,并重新启动一下计算机打印作业将被发现.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

二.RAW:此时除了打印到打印缓冲:/Windows/Spool/Printers目录下
形式如:00001.shd和00001.spl(此处以打印测试页为例)
另外还会将具体内容打印到:/Windows/Temp或:/Temp目录下
形式类似:~EMF343C.TMP .

00001.shd内容类似下面:(用NotePad.exe打开)

KI  T U V h { ? ? ?     # | K  Printer Test Page Panasonic KX-P1131
Panasonic KX-P1131 WinPrint EMF

其中:WinPrint EMF 表明采用EMF方式

00001.spl内容类似下面:(用NotePad.exe打开)

Spool ? Panasonic KX-P1131 ?@ f  ??   ?  ?   @ MSUD Panasonic KX-P1131 ?  d STD"  " Printer Test Page STP 
FTM% C:/WINDOWS/TEMP/~EMF343C.TMP ENP END

其中:FTM% C:/WINDOWS/TEMP/~EMF343C.TMP 指出具体内容文件.
(用 NotePad.exe打开为乱码)

这种情况下只要将三个文件拷到另外一台计算机对应目录上,并重新启动一下计算机打印作业将被发现.

上面所需文件都是临时文件,打印结束自动删除,所以要得到他们,必须将打印机关掉,这是系统汇报打印超时错,县不予理会,拷贝完上述文件后,在取消打印即可.所以
使用上述方法,计算机上并不一定真正安装了打印机.


注意:两台打印机名称,属性设为相同.重新启动不能自动发现时,直接打开对应打印机.
会发现打印机中有打印作业,并处在暂停状态,需人工干预一下.

上面的方法还适用于下面这种情况:在一台安装了Word 或Excel的计算机上编辑文档,另外一台未安装Word 或Excel,一般情况下无法打印.doc 和.xls文件,用上面的方法就可实现打印.
计算机上为安装

上面的方法我已经用Panasonic 1121和 Hp 6L打印机在Win95环境下试过.

至于Unix不熟悉,不知是否也有类似的临时文件可以利用.如果哪位试出请告知.

 
直接将"打印到文件"生成的文件,copy到打印机就可以实现打印,效果一样.
 
对不起!
我想大家都误会了我的意思了
我的意思是打印那台机器是不能动的,我只能从其打印端口上得到
数据,并不能从机器的系统上得到数据
所以,不能打印到文件,本来是只能输出到打印机的,打印出
来的数据再由人手输入电脑,我就想把这一工序省掉!

谢谢!
 
To :cAkk
Thinboy已开始就已经说明,不能够打印到文件.例如:在Win95中,用Word可实现打印到文件,而用NotePad 就不能打印到文件.这取决于采用的软件.

To :Thinboy
本以为你开始指出的不能输出到文件,是使用的软件所限,才提出上面的方法.
但是在Win95中打印一般通过操作系统直接管理,除非直接写打印口,你是不是后一种情况.
如果是前一种情况,那么我的方法万无一失.
 
unix送往打印口的大概能读出具体数据(unix一般按文本方式打印的), 不过
要去掉打印机控制符.

windows下没辙. 因为它送往文件和送往打印机的都是图形+打印机控制符.
 
to Charles: 你错了,win95下,任何打印机都可以打印到文件,这和
软件,打印机类型无关,方法是:

选菜单"开始/设置/打印机/属性/详细资料"
在"打印到以下端口"下拉列表里,选择"FILE: (在磁盘上创建文件)"
该打印机的所有输出将输往磁盘文件.
 
cAkk说的有理。
 
原来如此!惭愧 8-{ ,多谢指教 :cool:.

 
你十分之九是在说Unix, 只是不知道情况为什麽这麽神.
所以只能概述,Unix打印通过/usr/spool/.../interface(
一般除interface外不同Unix可能不同(可查资料、可用find
找))中的打印机同名文件(是shell文件)重定向.你只要把此
重定向改为到一个文件就可以了.
 
顶部