如何自动截获html原样输出文本到打印机的文本数据

随时选购服务
需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金电商双十二大促流量暴涨、销量翻倍的秘诀
自动截获输出到打印机数据并转换成PDF或者图片格式发出
自动截获输出到打印机数据并转换成PDF或者图片格式发出
雇主预算:¥5000.00
已收到 11 个服务商的文案稿件
有相似问题想解决?专业顾问来帮助您
通过猪八戒网实名认证,保证身份真实可靠
完成手机认证,保证能随时联系到服务商
参与需求,开始赚钱
第1步:提交您的稿件
第2步:中标后交付作品
第3步:获得赏金
该需求下的优秀交稿
TA的交稿:
做过该类的应用开发,Q&me:&
TA的交稿:
您的任务我们可以优质完成。联系Q号:1-8-4-4-8-7-6-9-2-1,想进一步沟通。
TA的交稿:
QQ:&&&电话:025-
交易成功的需求
其它工具软件相关需求3564人阅读
&iframe align=&center& marginwidth=&0& marginheight=&0& src=&/web/zy728x90GGFILECODE.html?gda=lva_JkgAAAA0JnVhLKcfXEPOyI_BFiw6jSXbk9rZ0BG-NkW6M17POWG1qiJ7UbTIup-M2XPURDQ6xQ-YXH5cIpJr5GLHhrG24r-IjDwRZnil8ibOM3z6Sg&hl=zh-CN& frameborder=&0& scrolling=&no&&&/iframe&
在所有的应用软件当中,几乎都会提供打印结果的功能,但大部分的软件并不提供输出结果到文本文件功能(如速达,用友和金碟应用软件等能够打印,但不能将结果直接输出到文本文件;再比如一些与硬件配套的应用软件类似 PeakNet等软件,也只能打印,不能输出到文本文件)。有时候客户需要对这些结果进行再次处理分析和统计。传统的方法,只能把打印到纸上的数据手工输入电脑,再利用自己的统计分析软件来处理这些数据。如果这些数据量大,仅靠人工输入是不可能的。笔者经过探讨和测试,找到了一个方法,实现了他们的无缝连接。为方便起见,以下称本文最早提到提供打印结果功能的软件为软件A,对这些结果再次进行处理分析和统计的软件为软件B。
问题(一)描述:
由于软件A不提供打印文本数据到文本文件中,但可以通过打印机打印出来。比如有些监控机器的软件一直要监控并且不时产生数据,而这些数据又需要重新处理和统计。我们需要的是文本文件。如何解决这个问题,请详见解决思路1),2),3)。
解决思路:
1) 虽然有些软件(比如Excel, Word等)在打印功能中提供&打印到文件&,但实际上打印出来的文件并不是我们所想要的纯数据的文本文件,而是有一堆的打印控制信息在里面。所以我们必须创建一个文本文件打印机,然后选该文本文件打印机为软件A默认的打印机。这样我们才能得到纯数据的文本文件。
2) 创建一个文本文件打印机:在Windows中创建一个新的本地打印机,选&FILE(打印到文件)&端口(注意不是打印机端口也不是串行口);然后需要选一个打印驱动程序(当然,你是牛人的话,自己可以写一个打印驱动程序,但写打印驱动程序对大多数程序员来说是一件很困难的事情)。
3) 尽管Windows提供了数十个厂家的打印驱动程序,但唯独只有Generic提供了文本文件打印程序,所以只能选Generic的&Generic/Text only& 作为该文本文件打印机的驱动程序。建好了文本文件打印机后,再将软件A默认的打印机重新指向到该文本打印机。这样我们再打印后就可以得到文本文件了。
问题(二)描述
我们的确可以得到文本文件,但新的问题又来了。当软件A用默认的文本文件打印机打印数据到文件时,会弹出一个输入文件名的对话框,此时如果没有操作员使用计算机,软件A会停留住。不为了不要人工输入文件名,请详见解决思路4),5)。
解决思路:
4) 每次打印到文本文件时候,系统会弹出一个对话框,需要输入文件名。对某些一天24小时不停运作的软件来说,靠人工输入文件名是不可能的。
5) 因此,我们可以设计一个程序,或者在软件B中增加一个功能,它的任务就是先找到该对话框,然后自动模拟键盘输入文件名到这个弹出的对话框,并且模拟鼠标点击&确定&按扭来关闭这个对话框,这样无须人工操作就能生成文本文件。
笔者设计的这个软件就是为了解决问题(二)。该软件不光是针对打印弹出的对话框,也可以针对其他一切类似需要人工输入的对话框。该程序代码还有助于解决如何自动关闭弹出的消息框的问题。软件B的数据来源可以是指定文件名的文本文件即我们刚刚得到的文本文件。它应该会定时地去读取这个文本文件,然后进行分析处理和统计。
笔者主要是采用了Windows API 函数,下面先对几个API函数简单的介绍一下:
FindWindow( LPCTSTR lpszClassName, LPCTSTR lpszWindowName ):
查找指定类名和窗口名的窗口,返回一个窗口句柄。GetWindowText( HWND hWndLPTSTR lpString, int nMaxCount ):
获得窗口的文本,如果该窗口是对话框,则lpString返回它的标题。
FindWindowEx( HWND hwndParent, HWND hwndChildAfter, LPCTSTR lpszClass,
LPCTSTR lpszWindow ):
在指定的父窗口内查找第一个指定类名的子窗口,返回一个窗口句柄。
SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ):
发一个消息给指定窗口,直到消息被处理完才返回。
SendNotifyMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam):
发一个消息给指定窗口。
有了设计思想后,再来选定一种程序语言。由于大部分语言都支持Windows API函数,所以选什么语言并不太重要,比如DELPHI,VC++,C++BUILDER,VB等都可以,笔者采用的是VC++6.0。
HWND a_window,b_window,f_
char* pFileN
char pbuf[100];
memset(pbuf,0,100);
LPTSTR lpS
CString filename=theApp.GetProfileString(&Parameter&,&FileName&,&result.txt&);//从配置文件中读取要填入对话框的文件名,也就是打印到文件的文件名
CString title=theApp.GetProfileString(&Parameter&,&DialogName&,&打印到文件&);//从配置文件中读取要输入文件名的对话框的标题,如果是英文软件就应该是&Print to file&
f_window=::FindWindow((LPCSTR)(DWORD)WC_DIALOG,title);//找到要输入文件名的对话框的窗口,获得它的句柄。
memset(pbuf,0,100);
::GetWindowText(f_window,pbuf,15);
lpString=title.GetBuffer(15);
if(*lpString==*pbuf)
pFileName=filename.GetBuffer(20);
CFile::Remove( pFileName );//如果已经有同名文件存在,则先删除。
filename.ReleaseBuffer();
//注意: CEdit和CButton 都是CWnd 的子类,所以都是窗口,也可以用::FindWindowEx查找得到。
a_window=::FindWindowEx(f_window,NULL,&Edit&,NULL);//找到要输入文件名的编辑框。
lpString=filename.GetBuffer(15);
::SendMessage(a_window, WM_SETTEXT,NULL,(LPARAM)lpString);//模拟键盘输入文件名
b_window=::FindWindowEx(f_window,NULL,&Button&,NULL);// 找到&确定&按扭
::SendNotifyMessage(b_window, WM_LBUTTONDOWN,MK_LBUTTON,NULL);//给&确定&按扭发送一个按下鼠标左键的消息
::SendNotifyMessage(b_window, WM_LBUTTONUP, NULL,NULL);// 再给&确定&按扭发送一个弹起鼠标左键的消息,第三个参数一定要是NULL,否则不成功。
title.ReleaseBuffer();
本程序在VC++6.0下编译,并在Window98,window2000,window XP运行通过。如果有谁需要该程序,我们可以免费Email给有需要的人。&&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:18431次
排名:千里之外
转载:17篇
(1)(4)(13)随时选购服务
需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金电商双十二大促流量暴涨、销量翻倍的秘诀
定制程序开发,自动截获输出到打印机数据并转换成PDF或文本文件格式
定制程序开发,自动截获输出到打印机数据并转换成PDF或文本文件格式
雇主预算:¥1500.00
已收到 9 个服务商的文案稿件
有相似问题想解决?专业顾问来帮助您
通过猪八戒网实名认证,保证身份真实可靠
完成手机认证,保证能随时联系到服务商
参与需求,开始赚钱
第1步:提交您的稿件
第2步:中标后交付作品
第3步:获得赏金
该需求下的优秀交稿
TA的交稿:
TA的交稿:
有这方面经验,开发经验丰富,希望与您合作!
TA的交稿:
TA的交稿:
最快完成.qq:
TA的交稿:
做过打印机数据监控并保存成doc程序,联系QQ:
还有3个服务商交稿:
或 查看更多优秀交稿
交易成功的需求
其它工具软件相关需求随时选购服务
需求发布后1小时内收到服务商响应每个需求平均有10个服务商参与95%以上的需求得到了圆满解决所有需求不向雇主收取任何佣金电商双十二大促流量暴涨、销量翻倍的秘诀
定制程序开发,自动截获输出到打印机数据并转换成文本文件格式
定制程序开发,自动截获输出到打印机数据并转换成文本文件格式
雇主预算:¥1000.00
已收到 5 个服务商的文案稿件
有相似问题想解决?专业顾问来帮助您
通过猪八戒网实名认证,保证身份真实可靠
完成手机认证,保证能随时联系到服务商
参与需求,开始赚钱
第1步:提交您的稿件
第2步:中标后交付作品
第3步:获得赏金
该需求下的优秀交稿
TA的交稿:
具体交稿内容请见附件。
TA的交稿:
具体交稿内容请见附件。
交易成功的需求
其它工具软件相关需求当前位置: >>
截获输出到打印机的文本数据
截获输出到打印机的文本数据 在所有的应用软件当中,几乎都会提供打印结果的功能,但大部分的软件并不提供输出结果 到文本文件功能(如速达,用友和金碟应用软件等能够打印,但不能将结果直接输出到文本 文件;再比如一些与硬件配套的应用软件类似 PeakNet 等软件,也只能打印,不能输出到文本文件) 。有时候客户需要对这些结果进行再次 处理分析和统计。传统的方法,只能把打印到纸上的数据手工
输入电脑,再利用自己的统计 分析软件来处理这些数据。如果这些数据量大,仅靠人工输入是不可能的。笔者经过探讨和 测试,找到了一个方法,实现了他们的无缝连接。为方便起见,以下称本文最早提到提供打 印结果功能的软件为软件 A,对这些结果再次进行处理分析和统计的软件为软件 B。问题(一)描述: 由于软件 A 不提供打印文本数据到文本文件中,但可以通过打印机打印出来。比如有些监控 机器的软件一直要监控并且不时产生数据,而这些数据又需要重新处理和统计。我们需要的 是文本文件。如何解决这个问题,请详见解决思路 1) ,3) ,2) 。 解决思路: 1) 虽然有些软件(比如 Excel, Word 等)在打印功能中提供“打印到文件”,但实际上打印 出来的文件并不是我们所想要的纯数据的文本文件,而是有一堆的打印控制信息在里面。所 以我们必须创建一个文本文件打印机,然后选该文本文件打印机为软件 A 默认的打印机。这 样我们才能得到纯数据的文本文件。2) 创建一个文本文件打印机:在 Windows 中创建一个新的本地打印机,选“FILE(打印到文 件) ”端口(注意不是打印机端口也不是串行口) ;然后需要选一个打印驱动程序(当然,你 是牛人的话,自己可以写一个打印驱动程序,但写打印驱动程序对大多数程序员来说是一件 很困难的事情) 。3) 尽管 Windows 提供了数十个厂家的打印驱动程序, 但唯独只有 Generic 提供了文本文件打 印程序,所以只能选 Generic 的“Generic/Text only” 作为该文本文件打印机的驱动程序。 建好了文本文件打印机后,再将软件 A 默认的打印机重新指向到该文本打印机。这样我们再 打印后就可以得到文本文件了。问题(二)描述 我们的确可以得到文本文件,但新的问题又来了。当软件 A 用默认的文本文件打印机打印数 据到文件时,会弹出一个输入文件名的对话框,此时如果没有操作员使用计算机,软件 A 会 停留住。不为了不要人工输入文件名,请详见解决思路 4) 。 ,5) 解决思路: 4) 每次打印到文本文件时候,系统会弹出一个对话框,需要输入文件名。对某些一天 24 小 时不停运作的软件来说,靠人工输入文件名是不可能的。5) 因此,我们可以设计一个程序,或者在软件 B 中增加一个功能,它的任务就是先找到该对 话框,然后自动模拟键盘输入文件名到这个弹出的对话框,并且模拟鼠标点击“确定”按扭 来关闭这个对话框,这样无须人工操作就能生成文本文件。 笔者设计的这个软件就是为了解决问题(二) 。该软件不光是针对打印弹出的对话框,也可以 针对其他一切类似需要人工输入的对话框。该程序代码还有助于解决如何自动关闭弹出的消 息框的问题。软件 B 的数据来源可以是指定文件名的文本文件即我们刚刚得到的文本文件。 它应该会定时地去读取这个文本文件,然后进行分析处理和统计。笔者主要是采用了 Windows API 函数,下面先对几个 API 函数简单的介绍一下: FindWindow( LPCTSTR lpszClassName, LPCTSTR lpszWindowName ): 查找指定类名和窗口名的窗口,返回一个窗口句柄。GetWindowText( HWND hWndLPTSTR lpString, int nMaxCount ): 获得窗口的文本,如果该窗口是对话框,则 lpString 返回它的标题。 FindWindowEx( HWND hwndParent, HWND hwndChildAfter, LPCTSTR lpszClass, LPCTSTR lpszWindow ): 在指定的父窗口内查找第一个指定类名的子窗口,返回一个窗口句柄。 SendMessage( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ): 发一个消息给指定窗口,直到消息被处理完才返回。 SendNotifyMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) : 发一个消息给指定窗口。有了设计思想后,再来选定一种程序语言。由于大部分语言都支持 Windows API 函数,所以 选什么语言并不太重要, 比如 DELPHI,VC++,C++BUILDER,VB 等都可以, 笔者采用的是 VC++6.0。 HWND a_window,b_window,f_CFileE char* pFileN char pbuf[100]; memset(pbuf,0,100); LPTSTR lpS CString filename=theApp.GetProfileString(&Parameter&,&FileName&,&result.txt&);// 从配置文件中读取要填入对话框的文件名,也就是打印到文件的文件名 CString title=theApp.GetProfileString(&Parameter&,&DialogName&,&打印到文件&);// 从配置文件中读取要输入文件名的对话框的标题, 如果是英文软件就应该是” Print to file”f_window=::FindWindow((LPCSTR)(DWORD)WC_DIALOG,title);//找到要输入文件名的对话框 的窗口,获得它的句柄。 memset(pbuf,0,100); ::GetWindowText(f_window,pbuf,15); lpString=title.GetBuffer(15); if(*lpString==*pbuf) { pFileName=filename.GetBuffer(20); CFile::Remove( pFileName );//如果已经有同名文件存在,则先删除。 filename.ReleaseBuffer(); //注意: CEdit 和 CButton 都是 CWnd 的子类,所以都是窗口,也可以用::FindWindowEx 查 找得到。 a_window=::FindWindowEx(f_window,NULL,&Edit&,NULL);//找到要输入文件名的编辑框。 lpString=filename.GetBuffer(15);::SendMessage(a_window, WM_SETTEXT,NULL,(LPARAM)lpString);//模拟键盘输入文件名 b_window=::FindWindowEx(f_window,NULL,&Button&,NULL);// 找到”确定”按扭::SendNotifyMessage(b_window, WM_LBUTTONDOWN,MK_LBUTTON,NULL);//给”确定”按扭发 送一个按下鼠标左键的消息 ::SendNotifyMessage(b_window, WM_LBUTTONUP, NULL,NULL);// 再给”确定”按扭发送一 个弹起鼠标左键的消息,第三个参数一定要是 NULL,否则不成功。} title.ReleaseBuffer();
它们同样能截获所有 Windows 程序的打印操作,或模拟...打印机,任何加密的文档都可以把其中的文字提取到 ...打印能力,并通过它来选择任意一台打印机进行 输出。...备份打印机配置 4.点击“导出打印机在打印到文件”链接管理“管理单元的 MMC 控制台窗口区域。 5.在“选择文件位置”窗口中点击“浏览”按钮,选择您想要保存的...matlab中将数据输出保存为txt格式文件的方法_IT/计算机_专业资料。将 matlab 中数据输出保存为 txt 或 dat 格式总结网上各大论坛,主要有三种方法。 第一种方法:...截获操作系统的打印任务, 将打印任务转换为图像文件...然后假脱机将数据流发送给具有目标打印机 I/O 端口...并发送 RAW 格式的结果输出到假脱机(通过调用 Write...cad图纸出图或转成pdf文件的最佳方法_电脑基础知识_...程序根据用户提供的数据判定。 图层:在指定图层中的...? 直接批量打印,即以当前设置输出到打印机 ? 批量...本菜单主要用于控制文件的输入、输出,对整个系统的...键将使系 统根据图形自己判断并删除冗余的数据,同样...⒊打印设备:用户可以在此指定要用的打印机、打印...(第五章―第六章)一、概念选择 1 CPU 输出数据的速度远远高于打印机的打印...A 把文件信息从外存读到内存 C 把文件的控制管理信息从外存读到内存 B 把...结果输出到打印机,如果还使用了 prompt 则在打印机...TO & 数据库文件名&[FOR|WHILE&条件&][FIELDS&...(&&数值表达式&&) 截取子字符串函数:SUBSTR(&字符...文件 Visual FoxPro 常用命令分类表 数据库文件及记录命令 ADD TABLE 在当前数据...把结果直接输出到打印机 以编程方式创建报表 向打印机发送换页符 向打印机发出...如何将该 PDF 文件输出为 MDI 格式的虚拟打印文件很简单啊,装一个 Microsoft Office Document Image Writer 虚拟打印机,打印时选它,然 后打开 属性-高级-输出...
All rights reserved Powered by
copyright &copyright 。文档资料库内容来自网络,如有侵犯请联系客服。

我要回帖

更多关于 kettle 文本文件输出 的文章

 

随机推荐