CN112230867A - 一种监控物理打印机打印内容的方法 - Google Patents

一种监控物理打印机打印内容的方法 Download PDF

Info

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
Application number
CN202011114472.1A
Other languages
English (en)
Inventor
邱文乔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Nautilus Software Co ltd
Original Assignee
Wuxi Nautilus Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Nautilus Software Co ltd filed Critical Wuxi Nautilus Software Co ltd
Priority to CN202011114472.1A priority Critical patent/CN112230867A/zh
Publication of CN112230867A publication Critical patent/CN112230867A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1259Print job monitoring, e.g. job status
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1242Image or content composition onto a page
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1293Printer information exchange with computer
    • G06F3/1295Buffering 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打印机,具体指令如下:
Figure BDA0002727512430000031
如果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监控文件。代码如下:
Figure BDA0002727512430000032
Figure BDA0002727512430000041
Figure BDA0002727512430000051
通过本实施例提供的一种监控物理打印机打印内容的方法,能够监控到物理打印机的具体打印内容,并将内容备份、存档,方便后续在需要的时候进行审计,保证了打印内容的可控、可回溯。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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监控文件。
CN202011114472.1A 2020-10-16 2020-10-16 一种监控物理打印机打印内容的方法 Pending CN112230867A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641312A (zh) * 2021-08-11 2021-11-12 北京天空卫士网络安全技术有限公司 一种文件打印方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
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环境下打印备份的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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