CN112230867A - 一种监控物理打印机打印内容的方法 - Google Patents
一种监控物理打印机打印内容的方法 Download PDFInfo
- Publication number
- CN112230867A CN112230867A CN202011114472.1A CN202011114472A CN112230867A CN 112230867 A CN112230867 A CN 112230867A CN 202011114472 A CN202011114472 A CN 202011114472A CN 112230867 A CN112230867 A CN 112230867A
- Authority
- CN
- China
- Prior art keywords
- printer
- xps
- physical printer
- file
- printing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 24
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000012550 audit Methods 0.000 abstract description 4
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1259—Print job monitoring, e.g. job status
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1201—Dedicated interfaces to print systems
- G06F3/1223—Dedicated interfaces to print systems specifically adapted to use a particular technique
- G06F3/1237—Print job management
- G06F3/1242—Image or content composition onto a page
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/12—Digital output to print unit, e.g. line printer, chain printer
- G06F3/1293—Printer information exchange with computer
- G06F3/1295—Buffering means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
本发明公开了一种监控物理打印机打印内容的方法,包括以下步骤:S1,获取物理打印机名称;S2,拦截应用程序的打印请求,判断打印请求是否调用物理打印机,若调用物理打印机,则保存物理打印机名称;然后调用虚拟打印机Microsoft XPS Document Writer,并将物理打印机准备打印的内容转到windows自带的xps打印机Microsoft XPS Document Writer打印,得到xps监控文件;S3,设置在打印成xps文件的时候,将不会跳出保存文件对话框,而是直接打印成xps文件;S4,重新调用步骤S2保存的原始物理打印机,打印步骤S3中的xps监控文件。本发明提供的方法,能够监控到物理打印机的具体打印内容,并将内容备份、存档,方便后续在需要的时候进行审计,保证了打印内容的可控、可回溯。
Description
技术领域
本发明涉及一种监控物理打印机打印内容的方法。
背景技术
使用windows提供的打印监控api接口,可以监控到打印发起电脑、打印机名称、打印时间、打印名称、打印份数等。但是无法监控到具体打印了哪些内容。而有些时候,为了安全审计、备份等方面的原因,我们需要知道具体打印的内容。
发明内容
本发明的目的是提供一种监控物理打印机打印内容的方法,弥补现有打印监控功能的不足。
实现本发明目的的技术方案是:一种监控物理打印机打印内容的方法,包括以下步骤:
S1,获取物理打印机名称;
S2,拦截应用程序的打印请求,判断打印请求是否调用物理打印机,若调用物理打印机,则保存物理打印机名称;然后调用虚拟打印机Microsoft XPS Document Writer,并将物理打印机准备打印的内容转到windows自带的xps打印机Microsoft XPS DocumentWriter打印,得到xps监控文件;
S3,设置在打印成xps文件的时候,将不会跳出保存文件对话框,而是直接打印成xps文件;
S4,重新调用步骤S2保存的原始物理打印机,打印步骤S3中的xps监控文件。
进一步地,所述步骤S1具体为:首先使用EnumPrinters来获取需要的缓冲区大小,然后创建缓冲区;然后再次调用EnumPrinters来获取打印机信息,从而获取物理打印机名称。
进一步地,所述步骤S2具体为:ApiHook windows接口CreateDC,然后检查第二个参数pwszDevice;如果其有值,则与步骤S1中保存的打印机名称相比对,判断其是否为打印机,且不为Microsoft XPS Document Writer或者PDF打印机;如果判断是打印机,且不为Microsoft XPS Document Writer或者PDF打印机,则表明正在调用物理打印机准备打印文件,此时首先将pwszDevice保存起来,命名为:pwszOrgDevice;然后调用Real_CreateDCW(NULL,L"Microsoft XPS Document Writer",NULL,NULL);并返回,将打印机要打印的内容先打印到xps文件中去。
进一步地,所述步骤S3具体为:ApiHook windows接口StartDocW,将第二个参数lpDocInfoW中的成员lpszOutput设为{tmp}\myName.xps,其中,{tmp}为系统临时目录。
进一步地,所述步骤S4具体为:ApiHook Windows接口EndDoc,当Microsoft XPSDocument Writer打印完成时,xps监控文件也已生成,此时调用步骤S2保存的原始物理打印机,打印生成的xps监控文件。
采用了上述技术方案,本发明具有以下的有益效果:(1)本发明提供的方法,能够监控到物理打印机的具体打印内容,并将内容备份、存档,方便后续在需要的时候进行审计,保证了打印内容的可控、可回溯。
(2)本发明设置在打印成xps文件的时候,将不会跳出保存文件对话框,而是直接打印成xps文件,能够保证监控过程不被打断,提高了监控的稳定性。
具体实施方式
(实施例1)
本实施例的一种监控物理打印机打印内容的方法,包括以下步骤:
S1,获取物理打印机名称:首先使用EnumPrinters来获取需要的缓冲区大小,然后创建缓冲区;然后再次调用EnumPrinters来获取打印机信息,从而获取物理打印机名称。代码如下:
DWORD dwNeeded=0,dwPrinterNum=0;
EnumPrinters(PRINTER_ENUM_LOCAL,NULL,4,NULL,0,&dwNeeded,&dwPrinterNum);
LPPRINTER_INFO_4pPrinterInfo=(LPPRINTER_INFO_4)LocalAlloc(LPTR,dwNeeded+4);
EnumPrinters(PRINTER_ENUM_LOCAL,NULL,4,pPrinterInfo,dwNeeded,&dwNeeded,&dwPrinterNum);
其中pPrinterInfo中保存了相应的打印机信息,dwPrinterNum表示有多少打印机。
通过以下指令可以权举出打印机名称:
for(int i=0;i<dwPrinterNum;i++)
{
wprintf_s(L"%s\r\n",pBuffer[i].pPrinterName);
S2,ApiHook windows接口CreateDC。检查第二个参数pwszDevice,如果其有值,则与步骤S1中保存的打印机名称相比对,判断其是否为打印机,且不为Microsoft XPSDocument Writer或者PDF打印机,具体指令如下:
如果bPhysicalPrint为true,则表明此时正在调用物理打印机准备打印文件。此时首先将pwszDevice保存起来,命名为:pwszOrgDevice。然后调用Real_CreateDCW(NULL,L"Microsoft XPS Document Writer",NULL,NULL);并返回。目的是将打印的内容先打印到xps文件中去。
S3,ApiHook windows接口StartDocW。将第二个参数lpDocInfoW中的成员lpszOutput设为{tmp}\myName.xps,其中,{tmp}为系统临时目录。通过此设置,在打印成xps文件的时候,将不会跳出保存文件对话框,则直接输入到文件{tmp}\myName.xps。
S4,ApiHook Windows接口EndDoc。当Microsoft XPS Document Writer打印完成时,xps监控文件也已生成。此时调用步骤S2中保存的原始物理打印机pwszOrgDevice,打印生成的xps监控文件。代码如下:
通过本实施例提供的一种监控物理打印机打印内容的方法,能够监控到物理打印机的具体打印内容,并将内容备份、存档,方便后续在需要的时候进行审计,保证了打印内容的可控、可回溯。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.一种监控物理打印机打印内容的方法,其特征在于:包括以下步骤:
S1,获取物理打印机名称;
S2,拦截应用程序的打印请求,判断打印请求是否调用物理打印机,若调用物理打印机,则保存物理打印机名称;然后调用虚拟打印机Microsoft XPS Document Writer,并将物理打印机准备打印的内容转到windows自带的xps打印机Microsoft XPS DocumentWriter打印,得到xps监控文件;
S3,设置在打印成xps文件的时候,将不会跳出保存文件对话框,而是直接打印成xps文件;
S4,重新调用步骤S2保存的原始物理打印机,打印步骤S3中的xps监控文件。
2.根据权利要求1所述的一种监控物理打印机打印内容的方法,其特征在于:所述步骤S1具体为:首先使用EnumPrinters来获取需要的缓冲区大小,然后创建缓冲区;然后再次调用EnumPrinters来获取打印机信息,从而获取物理打印机名称。
3.根据权利要求1所述的一种监控物理打印机打印内容的方法,其特征在于:所述步骤S2具体为:ApiHook windows接口CreateDC,然后检查第二个参数pwszDevice;如果其有值,则与步骤S1中保存的打印机名称相比对,判断其是否为打印机,且不为Microsoft XPSDocument Writer或者PDF打印机;如果判断是打印机,且不为Microsoft XPS DocumentWriter或者PDF打印机,则表明正在调用物理打印机准备打印文件,此时首先将pwszDevice保存起来,命名为:pwszOrgDevice;然后调用Real_CreateDCW(NULL,L"Microsoft XPSDocument Writer",NULL,NULL);并返回,将打印机要打印的内容先打印到xps文件中去。
4.根据权利要求1所述的一种监控物理打印机打印内容的方法,其特征在于:所述步骤S3具体为:ApiHook windows接口StartDocW,将第二个参数lpDocInfoW中的成员lpszOutput设为{tmp}\myName.xps,其中,{tmp}为系统临时目录。
5.根据权利要求1所述的一种监控物理打印机打印内容的方法,其特征在于:所述步骤S4具体为:ApiHook Windows接口EndDoc,当Microsoft XPS Document Writer打印完成时,xps监控文件也已生成,此时调用步骤S2保存的原始物理打印机,打印生成的xps监控文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011114472.1A CN112230867A (zh) | 2020-10-16 | 2020-10-16 | 一种监控物理打印机打印内容的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011114472.1A CN112230867A (zh) | 2020-10-16 | 2020-10-16 | 一种监控物理打印机打印内容的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112230867A true CN112230867A (zh) | 2021-01-15 |
Family
ID=74117886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011114472.1A Pending CN112230867A (zh) | 2020-10-16 | 2020-10-16 | 一种监控物理打印机打印内容的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112230867A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641312A (zh) * | 2021-08-11 | 2021-11-12 | 北京天空卫士网络安全技术有限公司 | 一种文件打印方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848261A (en) * | 1994-05-02 | 1998-12-08 | Quotron Systems, Inc. | System and method for remote printer emulation in a network |
CN102662611A (zh) * | 2012-03-05 | 2012-09-12 | 沈阳通用软件有限公司 | 一种Windows环境下打印审计的方法 |
CN102855095A (zh) * | 2011-06-27 | 2013-01-02 | 德讯科技股份有限公司 | 基于windows打印池的打印机打印内容监控与审计方法 |
CN103336923A (zh) * | 2013-03-06 | 2013-10-02 | 西安电子科技大学 | 用于通用打印机的打印监控系统及方法 |
CN106020740A (zh) * | 2015-12-10 | 2016-10-12 | 沈阳通用软件有限公司 | 一种Windows环境下打印备份的方法 |
-
2020
- 2020-10-16 CN CN202011114472.1A patent/CN112230867A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848261A (en) * | 1994-05-02 | 1998-12-08 | Quotron Systems, Inc. | System and method for remote printer emulation in a network |
CN102855095A (zh) * | 2011-06-27 | 2013-01-02 | 德讯科技股份有限公司 | 基于windows打印池的打印机打印内容监控与审计方法 |
CN102662611A (zh) * | 2012-03-05 | 2012-09-12 | 沈阳通用软件有限公司 | 一种Windows环境下打印审计的方法 |
CN103336923A (zh) * | 2013-03-06 | 2013-10-02 | 西安电子科技大学 | 用于通用打印机的打印监控系统及方法 |
CN106020740A (zh) * | 2015-12-10 | 2016-10-12 | 沈阳通用软件有限公司 | 一种Windows环境下打印备份的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641312A (zh) * | 2021-08-11 | 2021-11-12 | 北京天空卫士网络安全技术有限公司 | 一种文件打印方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11740844B2 (en) | Application isolation system | |
US8856088B2 (en) | Application-managed file versioning | |
US10198343B2 (en) | Method for debugging a computer program | |
CN107171825B (zh) | 一种终端的重复日志过滤方法 | |
US8797561B2 (en) | Printing control program and program recording media | |
EP2122488A1 (en) | Application-based copy and paste operations | |
CN109542964B (zh) | 一种数据调用方法及数据调用系统 | |
US20200218803A1 (en) | Call stack acquisition device, call stack acquisition method, and call stack acquisition program | |
CN112230867A (zh) | 一种监控物理打印机打印内容的方法 | |
US20090307680A1 (en) | Side-by-side driver installation | |
JP4828296B2 (ja) | 印刷装置制御システム及びプリンタドライバ | |
CN114564158B (zh) | Linux系统下控制文档打印的方法、装置、设备及介质 | |
CN111064610B (zh) | 日志文件的订阅方法、终端设备及存储介质 | |
US8027050B2 (en) | Computer containing a print control program, the program, and program recording medium | |
CN106776052B (zh) | 共享资源访问方法和装置 | |
EP1494115A2 (en) | Method of printing an electronic document | |
EP3430524B1 (en) | Print interface technology agnostic data loss prevention through print operations | |
CN114168498B (zh) | 一种断线保持方法、装置、设备及计算机存储介质 | |
CN110297623B (zh) | 日志展示方法及装置 | |
CN111858246A (zh) | 获取打印内容的方法 | |
CN112365259A (zh) | 系统集成中台的积分同步方法及积分同步系统 | |
CN111381785A (zh) | 一种设置系统默认打印机并调用打印文件的方法 | |
CN117311883A (zh) | 一种应用级检测可输入状态的方法 | |
JP2023020341A (ja) | プリンタドライバ | |
KR101308986B1 (ko) | 엔드포인트 dlp 시스템에서 개인정보보호 및 정보유출방지를 위한 내용기반의 출력물 보안 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |