CN114564158B - Linux系统下控制文档打印的方法、装置、设备及介质 - Google Patents
Linux系统下控制文档打印的方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114564158B CN114564158B CN202210444036.3A CN202210444036A CN114564158B CN 114564158 B CN114564158 B CN 114564158B CN 202210444036 A CN202210444036 A CN 202210444036A CN 114564158 B CN114564158 B CN 114564158B
- Authority
- CN
- China
- Prior art keywords
- document
- content
- file
- printed
- 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.)
- Active
Links
Images
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/1202—Dedicated interfaces to print systems specifically adapted to achieve a particular effect
-
- 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
-
- 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/1253—Configuration of print job parameters, e.g. using UI at the client
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
本申请提供了Linux系统下控制文档打印的方法、装置、设备及介质,涉及文档打印的技术领域,该方法包括:在检测到用户触发待打印文档的打印请求后,获取待打印文档的文档属性信息和待打印文档内容;根据文档属性信息和预设的打印协议信息格式,生成打印协议信息,并利用send函数将打印协议信息发送至打印机;创建临时文件;读取待打印文档内容,并利用write函数将读取的待打印文档内容写入临时文件,以生成目标文件;读取目标文件的文件内容,并利用send函数发送文件内容至打印机,以使打印机根据打印协议信息以及文件内容实现待打印文档的打印,能够利用底层函数,通用兼容的控制文档的打印操作。
Description
技术领域
本申请涉及文档打印的技术领域,尤其是涉及Linux系统下控制文档打印的方法、装置、设备及介质。
背景技术
目前电子文档系统中,Linux系统下控制文档打印的方式一般是通过应用程序所匹配的打印机进行控制打印,打印机与应用程序通过接口协议进行匹配,在匹配好打印机与应用程序后,在接收到用户的打印请求时,将打印协议信息与文档内容发送至与应用程序接口协议匹配好的打印机进行打印。
针对上述的相关技术,发明人认为,当打印机或应用程序需要更换时,由于打印机和应用程序的接口协议信息发生变化,需要重新匹配打印机和应用程序的接口协议,所以通过应用程序所匹配的打印机进行控制打印这种方案,只能在应用程序匹配好打印机的情况下进行控制打印,通用性和兼容性差。
发明内容
为了提高Linux系统文档打印的通用性和兼容性,本申请提供了一种Linux系统下控制文档打印的方法,装置、设备及存储介质。
第一方面,本申请提供一种Linux系统下控制文档打印的方法,采用如下技术方案:
一种Linux系统下控制文档打印的方法,所述方法包括:
在检测到用户触发待打印文档的打印请求后,获取待打印文档的文档属性信息和待打印文档内容;
根据所述文档属性信息和预设的打印协议信息格式,生成打印协议信息,并利用send函数将所述打印协议信息发送至打印机;
创建临时文件;
读取所述待打印文档内容,并利用write函数将读取的所述待打印文档内容写入临时文件,以生成目标文件;
读取所述目标文件的文件内容,并利用send函数发送所述文件内容至所述打印机,以使所述打印机根据所述打印协议信息以及所述文件内容实现所述待打印文档的打印。
通过上述方案,当检测到用户触发打印请求后,获取待打印文档的文档属性信息和待打印文档内容;根据文档属性信息和预设的打印协议信息格式,生成打印协议信息,并利用Linux系统的底层函数send函数直接将打印协议信息发送至打印机,再利用Linux系统的底层函数write函数将待打印文档内容直接写入到创建的临时文件,并将写入待打印文档内容的临时文件作为目标文件,利用send函数发送读取的目标文件的文件内容至打印机,因为send函数和write函数均为Linux最底层的函数,能够直接将打印协议信息和文件内容发送至打印机,因此不再需要匹配打印机协议接口,能够兼容多种打印机,提高了文档打印的兼容性,避免了相关技术利用上层函数进行文档打印控制时需要匹配特定的打印机造成的兼容性差的问题。
优选的,所述利用send函数将所述打印协议信息发送至打印机,包括:
根据send函数的多个文件句柄判断是否存在与待比较文件句柄相匹配的目标文件句柄,所述待比较文件句柄为获取待打印文档的文档属性信息和待打印文档内容时得到的;
若存在所述目标文件句柄,则判断所述send函数的形式参数所指向的第一内容中是否存在打印操作的字符串;
若存在所述打印操作的字符串,则利用send函数将所述打印协议信息发送至打印机。
通过上述方案,当用户触发待打印文档的打印请求后,获取待打印文档的文档属性信息和待打印文档内容时生成待比较文件句柄,根据send函数的多个文件句柄判断是否存在与待比较文件句柄相匹配的目标文件句柄,若存在,则当send函数的形式参数指向的第一内容中存在打印操作的字符串时,确定此时可以对待打印文档执行打印操作,进而将打印协议信息发送至打印机,以提高待打印文档的打印操作的准确性。
优选的,所述文档属性信息包括打印权限,所述若存在所述打印操作的字符串,则利用send函数将所述打印协议信息发送至打印机,包括:
若存在所述打印操作的字符串,则根据所述打印权限判断所述待打印文档是否为允许打印文档;
若待打印文档为允许打印文档,则利用send函数将所述打印协议信息发送至打印机。
通过上述方案,根据打印权限判断待打印文档是否为允许打印文档,若是允许打印文档,才利用send函数将所述打印协议信息发送至打印机,通过打印权限提高了待打印文档的保密性。
优选的,所述读取所述待打印文档内容,并利用write函数将读取的所述待打印文档内容写入临时文件,包括:
确定每次读取的预设文档内容字节数;
根据所述预设文档内容字节数分次读取待打印文档内容,并利用write函数将读取到的内容写入临时文件。
通过上述方案,设置有每次读取的预设文档内容字节数,用于限制每次读取的内容的字节数,当文档较大时可以分块读写,具体根据预设文档内容字节数分次读取待打印文档内容,并利用write函数将读取到的内容写入临时文件,保证文档能够写入成功。
优选的,所述利用write函数将读取到的内容写入临时文件,包括:
从write函数的形式参数所指向的第二内容中确定开始字符串;
确定与所述开始字符串对应的待打印文档的文件路径名称,并将所述文件路径名称存储至全局结构体;
利用write函数将读取的所述待打印文档的待打印子文档内容写入临时文件,其中,所述待打印文档内容至少包括待打印子文档内容,读取的所述待打印子文档内容包括开始字符串且所述待打印子文档内容的字节数为预设文档内容字节数;
判断所述待打印子文档内容是否存在结束字符串;
若存在,则确定所述文档内容完全写入所述临时文件,得到目标文件;
若不存在,则确定所述第二内容中每一文档内容对应的文档路径地址名称,并根据每一所述文档路径地址名称从所述第二内容中,确定与所述全局结构体中的文件路径名称对应的文档内容,作为新的待打印文档内容,迭代写入临时文件,直至得到目标文件。
优选的,所述文档属性信息还包括:密级等级,在读取所述目标文件的文件内容之前,还包括:
根据所述密级等级确定水印模板文件,其中,密级等级包括公开、内部、秘密、机密、绝密;
将所述水印模板文件和所述目标文件合并,以生成新的目标文件;
相应的,所述读取所述目标文件的文件内容,包括:
读取所述新的目标文件的文件内容水印模板文件水印模板文件。
通过上述方案,根据文档属性信息中密级等级确定与之对应的水印模板文件,将水印模板文件与目标文件合并,生成新的目标文件,能够打印相适应的密级水印信息。
优选的,在所述创建临时文件之后,还包括:
识别创建的临时文件的目录;
利用unlink函数删除创建的临时文件的目录;
相应的,在利用send函数发送所述文件内容至所述打印机之后,还包括:
利用unlink函数删除全局结构体保存的文件路径名称,并利用close函数关闭所述目标文件。
通过上述方案,利用unlink函数删除识别到的临时文件的目录,因为此时临时文件是打开的,所以可以访问和使用临时文件,在调用close函数关闭文件后彻底删除临时文件,利用unlink函数删除全局结构体保存的文件路径名称,并调用close函数关闭目标文件,此时删除写入内容到的临时文件,并且删除保存在全局结构体的文件路径名称,避免了系统自动删除的不确定性,方便对写入文档内容后的临时文件与全局结构体保存的文件路径名称的控制与使用。
第二方面,本申请提供了一种Linux系统下控制文档打印的装置,采用如下的技术方案,包括:
一种Linux系统下控制文档打印的装置,包括:
信息获取模块:用于在检测到用户触发待打印文档的打印请求后,获取待打印文档的文档属性信息和待打印文档内容;
打印协议信息处理模块:用于根据所述文档属性信息和预设的打印协议信息格式,生成打印协议信息,并利用send函数将所述打印协议信息发送至打印机;
文件创建模块:用于创建临时文件;
文档内容处理模块:用于读取所述待打印文档内容,并利用write函数将读取的所述待打印文档内容写入临时文件,以生成目标文件;
文件内容处理模块:用于读取所述目标文件的文件内容,并利用send函数发送所述文件内容至所述打印机,以使所述打印机根据所述打印协议信息以及所述文件内容实现所述待打印文档的打印。
第三方面,本申请提供一种计算机设备,采用如下技术方案:
一种计算机设备,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如上述任一种Linux系统下控制文档打印的方法的计算机程序。
第四方面,本申请提供了一种计算机可读存储介质,采用如下方案:
一种计算机可读存储介质,存储有能够被处理器加载并执行上述任一种Linux系统下控制文档打印的方法的计算机程序。
综上所述,本申请包括以下至少一种有益技术效果:
(1)当检测到用户触发打印请求后,获取待打印文档的文档属性信息和待打印文档内容;根据文档属性信息和预设的打印协议信息格式,生成打印协议信息,并利用Linux系统的底层函数send函数直接将打印协议信息发送至打印机,再利用Linux系统的底层函数write函数将待打印文档内容直接写入到创建的临时文件,并将写入待打印文档内容的临时文件作为目标文件,利用send函数发送读取的目标文件的文件内容至打印机,因为send函数和write函数均为Linux最底层的函数,能够直接将打印协议信息和文件内容发送至打印机,因此不再需要匹配打印机协议接口,能够兼容多种打印机,提高了文档打印的兼容性,避免了相关技术利用上层函数进行文档打印控制时需要匹配特定的打印机造成的兼容性差的问题。
附图说明
图1为本申请实施例提供的一种Linux系统下控制文档打印的方法的流程示意图;
图2为本申请实施例提供的一种Linux系统下控制文档打印的装置的结构示意图;
图3为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
以下结合附图1-附图3对本申请作进一步详细说明。
本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本申请的保护范围内都受到专利法的保护。
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
下面结合说明书附图对本申请实施例作进一步详细描述。
目前电子文档系统中,Linux系统下控制文档打印的方式一般是通过应用程序所匹配的打印机进行控制打印,打印机与应用程序通过接口协议进行匹配,在匹配好打印机与应用程序后,在接收到用户的打印请求时,将打印协议信息与文档内容发送至与应用程序接口协议匹配好的打印机进行打印,编写特定应用程序的插件来实现控制涉密文档的打印功能,通过对打印消息的回调函数返回值来控制是否允许打印,编写特定驱动程序在驱动层来控制是否允许打印。
针对上述的相关技术,发明人认为,编写特定应用程序的插件来实现对涉密文档的控制打印这一方法对应用程序的依赖性太强,只能针对提供插件功能的程序,而不提供插件功能或提供插件但未提供控制打印方法的插件无法控制应用程序打印功能。编写特定驱动程序在驱动层来控制是否是否允许打印对linux系统版本依赖性太强,当linux系统进行升级或者版本不同时,需要重新编译驱动程序,编译成本太高。对于应用程序所匹配的打印机进行控制打印这一方法,当打印机或应用程序需要更换时,由于打印机和应用程序的接口协议信息发生变化,所以需要重新匹配打印机和应用程序的接口协议。所以通过应用程序所匹配的打印机进行控制打印这种方案,只能在应用程序匹配好打印机的情况下进行控制打印,通用性和兼容性差。
为了解决上述技术问题,本申请实施例提供了一种Linux系统下控制文档打印的方法,利用send函数和write函数均为Linux最底层的函数,能够直接将打印协议信息和文件内容发送至打印机,不再需要匹配打印机协议接口,能够兼容多种打印机,提高了文档打印的兼容性,避免了相关技术利用上层函数进行文档打印控制时需要匹配特定的打印机造成的兼容性差的问题。
本申请实施例基于Preload Hook技术,Preload技术是Linux系统自身支持的模块预加载技术,可以注入某一应用程序进程,也可以注入所有的应用程序中。本申请实施例利用Preload Hook技术,强行调用系统底层函数,包括但是不限定于send函数、write函数,调用write函数将读取的文档内容写入临时文件中,并强行调用send函数做发送打印协议信息和文件内容至打印机,打印机根据打印协议信息以及文件内容实现待打印文档的打印。
为了便于理解,以下对涉及的相关名词进行详细说明:
Linux系统是一个基于POSIX(Portable Operating System Inter face ofUNIX,可移植操作系统接口)的多用户、多任务、支持多线程和多CPU的操作系统,是一个性能稳定的多用户网络操作系统。
send函数是Linux系统底层函数,当send函数被调用时可直接执行发送数据的操作,具体可以是向一个已连接的套接口发送数据。
write函数是Linux系统底层函数,当write函数被调用时可将目标内容写入到指定文件内。
unlink函数是Linux系统底层函数,当unlink函数被调用时可删除指定文件的目录项并减少它的链接数,若成功删除则返回0,否则返回-1,没有成功删除的原因存于error。
close函数是Linux系统底层函数,当close函数被调用时可关闭一个已经打开的指定文件。
具体地,本申请实施例提供了一种Linux系统下控制文档打印的方法,由计算机设备执行,该计算机设备可以为服务器也可以为终端设备,其中,该服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器。终端设备可以是智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此,该终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例在此不做限制。
结合图1,图1为本申请实施例提供的一种Linux系统下控制文档打印的方法的流程示意图。本申请实施例提供一种Linux系统下控制文档打印的方法,该方法包括步骤S100、步骤S101、步骤S102、步骤S103、步骤S104、步骤S105,其中:
步骤S100,在检测到用户触发待打印文档的打印请求后,获取待打印文档的文档属性信息和待打印文档内容。
其中,计算机设备中预先集成有监视程序,监视程序用于对打印请求的触发行为进行监视,一旦监视到打印请求被触发了,则获取打印请求对应的待打印文档的文档属性信息和待打印文档内容。具体来说,当用户打开待打印文档,确认打印之后,会自动生成待打印文档的打印请求,其中,确认打印的方式可以包括:用户在应用程序上点击打印按钮的方式确认打印、用户通过语音的方式确认打印,当计算机设备检测到用户触发待打印文档的打印请求后,计算机设备获取到待打印文档的文档属性信息和待打印文档内容。
其中,文档属性信息可以包括文档格式、文档大小、字段代表长度,还可以包括密级等级和打印权限。文档格式可以为如txt格式、pdf格式、docx格式等,字段代表长度指的是文档内容的长度,可以理解的是,具有同样文本内容的设置有水印的文档、未设置水印的文档的字段代表长度相同,当字段代表长度存在并且有效时,字段代表长度必须与利用send函数发送至打印机的文件内容的内容长度完全一致,超过这个长度的内容将被抛弃,如果短于这个长度,计算机设备返回错误信息。待打印文档的待打印文档内容可以包括:字体的格式、字体大小、字体颜色、具体的文本内容,还有一些限制内容的字符串,限制内容的字符串至少包括开始字符串、结束字符串。
步骤S101,根据文档属性信息和预设的打印协议信息格式,生成打印协议信息。
具体地,在本申请实施例中,预设有打印协议信息格式,打印协议信息格式中的内容包括但不限定于:字段代表长度值、文档大小代表值、文档格式代表值,当然还可以根据用户的实际需求进行调整。在获取到文档属性信息后,将文档属性信息中的相关信息添加到打印协议信息格式的内容中生成打印协议信息,其中,文档的相关信息至少包括:字段代表长度、文档格式,文档大小。
步骤S102,利用send函数将打印协议信息发送至打印机。
具体的,send函数是Linux底层函数,Linux系统无时无刻在调用send函数执行发送数据的操作。在本申请实施例中,基于hook技术,强行调用send函数直接发送打印协议信息至打印机,由于利用的是Linux底层函数,因此不需要特定的打印接口,打印机可以是任一型号的打印机。
步骤S103,创建临时文件。
在Linux系统下,执行文档打印操作时需要创建临时文件,本申请实施例中,不对创建的临时文件的格式进行限定。优选的,创建临时文件为pdf临时文件,在Linux系统下创建pdf临时文件进行待打印文档的打印可以支持资源自包含,支持高压缩的图片,支持矢量图形。
步骤S104,读取待打印文档内容,并利用write函数将读取的待打印文档内容写入临时文件,以生成目标文件。
在本申请实施例中,基于hook技术强行调用write函数将读取后的待打印文档内容写入到创建的临时文件,并将写入待打印文档内容的临时文件作为目标文件。
步骤S105,读取目标文件的文件内容,并利用send函数发送文件内容至打印机,以使打印机根据打印协议信息以及文件内容实现待打印文档的打印。
其中,本申请实施例读取的目标文件的文件内容可以包括:字体的格式、字体大小、字体颜色、具体的文本内容,可以理解的是,文件内容与待打印文档内容的字体的格式、字体大小、字体颜色、具体的文本内容一致,然后利用send函数直接将文件内容发送至打印机,不再受打印接口的限制。当打印机接收到打印协议信息以及文件内容后,可实现待打印文档的打印。进一步的,打印机可以确定文件内容是否与打印协议信息相匹配,若匹配,则打印文件内容,若不匹配,则报错。
可见,本申请利用Linux系统的底层函数send函数和write函数直接将打印协议信息和文件内容发送至打印机,因此不再需要匹配打印机协议接口,能够兼容多种打印机,提高了文档打印的兼容性,避免了相关技术利用上层函数进行文档打印控制时需要匹配特定的打印机造成的兼容性差的问题。
进一步的,为了提高待打印文档的打印操作的准确性,在本申请实施例中,步骤S102:利用send函数将打印协议信息发送至打印机,可以包括:步骤S1021(附图未示出)、步骤S1022(附图未示出),步骤S1023(附图未示出)其中,
步骤S1021,根据send函数的多个文件句柄判断是否存在与待比较文件句柄相匹配的目标文件句柄,待比较文件句柄为获取待打印文档的文档属性信息和待打印文档内容时得到的;
其中,在检测到用户触发待打印文档的打印请求后,获取待打印文档的文档属性信息和待打印文档内容是会得到待比较文件句柄,待比较文件句柄和待打印文档的名称唯一对应。
send函数包括第一参数和第二参数,第一参数是套接字文件句柄,从待打印文档读取数据,计算机设备基于应用程序首先要调用send函数并传送待打印文档的文档名,并选一个到待打印文档的文档路径名称来打开文件,send函数取回文件句柄,对于打开的文件是唯一的识别依据。
由于待打印文档可以被执行任何操作,为了确定是否能够进行打印操作,本申请实施例先根据send函数的第一参数的多个文件句柄中判断是否存在与待比较文件句柄相匹配的目标文件句柄,如果存在则确定待打印文档可被执行打印操作,若不存在表示,待打印文档在执行其他操作,如转移操作。
步骤S1022,若存在目标文件句柄,则判断send函数的形式参数所指向的第一内容中是否存在打印操作的字符串;
步骤S1023,若存在打印操作的字符串,则利用send函数将打印协议信息发送至打印机。
其中,send函数的第二参数具体为形式参数,可指向send函数被调用时计算机设备分配的内存单元中的第一内容。具体地,在本申请实施例中,当send函数被调用时计算机设备分配内存单元给send函数的形式参数,在send函数调用结束时,即刻释放内存单元,内存单元中存储计算机设备利用send函数所做的所有操作的第一内容。因此,send函数的形式参数所指向的第一内容为内存单元中存储的所有内容。由于send函数是Linux系统底层函数,只要计算机设备执行与send函数有关的操作,都会去调用send函数,与send函数有关的操作包括文件的共享、文件的转移、文档的删除等等,相应的,对应的操作内容均存储至内存单元中。例如,在控制文档打印过程中强行调用send函数的同时,另一文件也利用send函数进行转移,此时,send函数的形参所指向的内存单元中存储的第一内容包括:待打印文档的打印操作对应的字符串以及另一文件的转移操作对应的字符串,其中,打印操作对应的字符串指的是当触发打印指令时,计算机底层用于获取打印操作的字符串;打印操作的字符串用户可自定义设置,优选的,打印操作的字符串为POST/printers。
本步骤基于send函数的形式参数,确定对应的第一内容,再判断第一内容是否存在打印操作的字符串,具体判断方式可以是按照第一内容中存储内容的时间先后顺序依次判断,还可以是按照第一内容中的存储内容的类型优先级进行依次判断,本实施例不再进行限定,只要是能够实现本实施例的目的即可。
进一步的,在本申请实施例中,为了提高待打印文档的保密性的目的,在文档属性信息包括打印权限时,步骤S1023可以包括:步骤S1023-1(附图未示出)、步骤S1023-2(附图未示出),其中,
步骤S1023-1,若存在打印操作的字符串,则根据打印权限判断待打印文档是否为允许打印文档;
其中,打印权限可以包括默认、允许、禁止。当打印权限为默认或允许时,则确定待打印文档为允许打印文档;当打印权限为禁止时,则确定待打印文档为禁止打印文档。
步骤S1023-2,若待打印文档为允许打印文档,则利用send函数将打印协议信息发送至打印机。
若待打印文档是允许打印文档,则直接调用send函数发送打印协议信息至打印机,保证了只有是允许打印文档的打印协议信息才可发送打印机,避免了禁止打印文档的打印协议信息误发打印机,以造成禁止打印文档被打印造成的文件泄露,本申请实施例能够提高文档的安全性。
进一步的,若待打印文档为禁止打印文档,则将打印协议信息中的字段代表长度值修改为禁止打印值;利用send函数将修改后的打印协议信息发送至打印机,以使当打印机接收到修改后的打印协议信息,打印机识别到字段代表长度值为禁止打印值后,禁止打印待打印文档。
基于上述实施例,文档属性还包括,通过打印权限确定待打印文档是允许打印文档后,再利用send函数将打印协议信息发送至打印机,保证了只有允许打印文档的打印协议信息才可发送打印机,避免了禁止打印文档的打印协议信息误发打印机,以造成禁止打印文档被打印造成的文件泄露,本申请实施例能够提高文档的安全性。
进一步的,读取待打印文档内容,并利用write函数将读取的待打印文档内容写入临时文件,可以包括:步骤S10(附图未示出)、步骤S20(附图未示出),其中:
步骤S10,确定每次读取的预设文档内容字节数;
其中,设置有每次读取的预设文档内容字节数,用于限制每次读取的内容的字节数,当文档较大时可以分块读写,保证文档能够写入成功。具体的,预设文档内容字节数的大小用户可以根据实际需求进行设置。
步骤S20,根据预设文档内容字节数分次读取待打印文档内容,并利用write函数将读取到的内容写入临时文件。
按照预设文档内容字节数分次读取待打印文档内容,每次读到内容后,利用write函数将读取到的内容写入临时文件,再读取下次的内容直至完成待打印文档内容的写入。
具体的,利用write函数将读取到的内容写入临时文件,可以包括:步骤S21(附图未示出)、步骤S22(附图未示出)、步骤S23(附图未示出)、步骤S24(附图未示出)、步骤S25(附图未示出),其中:
步骤S21,从write函数的形式参数所指向的第二内容中确定开始字符串。
write函数的形式参数所指向的第二内容包括计算机设备利用write函数所做的所有操作的内容。由于write函数是Linux系统底层函数,只要计算机设备执行与write函数有关的操作,都会去调用write函数,与write函数有关的操作包括向文件内写入数据、向设备中写入数据等等。例如,在控制文档打印过程中强行调用write函数的同时,另一文件也利用write函数执行向文件内写入数据的操作,此时,write函数的形参所指向的第二内容包括:读取后的文档内容以及向文件内写入的数据内容,读取后的文档内容中包括开始字符串、具体的文本内容、结束字符串。优选的,开始字符串可以是“%PDF”、结束字符串可以是“%EOF”,当然用户还可以根据实际需求进行设置。本步骤通过write函数的形式参数所指向的第二内容,来确定是否存在开始字符串,开始写入字符串表示为待打印文档的待打印文档内容。
步骤S22,确定与开始字符串对应的待打印文档的文件路径名称,并将文件路径名称存储至全局结构体。
具体地,确定与开始字符串对应的待打印文档的文件路径名称的方式可以包括:根据write函数的第一参数返回的多个文件句柄判断是否存在与待比较文件句柄相匹配的目标文件句柄,若存在,则确定目标文件句柄对应的文档名称,通过环境变量确定文档名称对应的文件路径地址名称,write函数的第一参数包括多个write函数套接字文件句柄。
具体的,将文件路径名称封装并存储至全局结构体,主要是为了当读写操作的是大文件内容,则基于全局结构体中的文件路径名称确定分片的文档内容保证实现文档内容的全部写入。
步骤S23,利用write函数将读取的待打印文档的待打印子文档内容写入临时文件,其中,待打印文档内容至少包括待打印子文档内容,读取的待打印子文档内容包括开始字符串且待打印子文档内容的字节数为预设文档内容字节数。
在确定write函数的形式参数所指向的第二内容中有待打印文档子内容后,利用write函数将待打印文档的子内容写入临时文件,之后,write函数的形式参数所指向的第二内容中的待打印文档的实际文档内容中不再包括写入临时文件的待打印子文档内容,例如,当待打印文档内容包括a、b、c时,当第一子文档内容为a时,在利用write函数将a写入临时文件之后,write函数的形式参数所指向的第二内容中的待打印文档的实际文档内容包括b、c。
步骤S24,判断待打印子文档内容是否存在结束字符串;
其中,当待打印文档内容的字节数不大于预设文档内容字节数,则一次性读写完成,此时待打印文档内容就是待打印子文档内容,且待打印子文档内容中包括开始字符串以及结束字符串;当待打印文档内容的字节数大于预设文档内容字节数,则需要分次读写,待打印子文档内容包括开始字符串,且不具有结束字符串。
步骤S25,若存在,则确定文档内容完全写入临时文件,得到目标文件;
步骤S26,若不存在,则确定第二内容中每一文档内容对应的文档路径地址名称,并根据每一文档路径地址名称从第二内容中,确定与全局结构体中的文件路径名称对应的文档内容,作为新的待打印文档内容,迭代写入临时文件,直至得到目标文件。
具体地,在本申请实施例中write函数的形式参数所指向的第二内容中包括很多文档内容,先根据第二内容中每一文档内容对应的文档路径地址名称,确定与全局结构体中的文件路径名称相匹配的文档路径地址名称,根据相匹配的文档路径名称从众多的文档内容中确定出新的待打印文档内容,再利用write函数迭代写入直至在写入临时文件的待打印子文档内容中存在结束字符串,确定写入临时文件的文档内容写入结束,得到目标文件。
具体的,确定第二内容中每一文档内容对应的文档路径地址名称,可以包括:根据write函数的第一参数返回的文件句柄确定每一文档内容对应的文档路径地址名称。
可见,本申请实施例通将文档内容分次读取并写入临时文件以得到,能够保证大文件内容可以成功写入的同时提高了写入的准确性。
进一步的,在本申请实施例中为了准确打印相适应的密级水印信息的目的,具体的,文档属性信息还包括:密级等级,在读取目标文件的文件内容之前,还包括:步骤S30(附图未示出)、步骤S31(附图未示出),其中:
步骤S30,根据密级等级确定水印模板文件,其中,密级等级包括公开、内部、秘密、机密、绝密;
具体地,根据密级等级确定相应的水印模板文件可以包括:从预先设置的密级等级与水印模板文件信息的对应关系中,确定与文档属性信息中的密级等级对应的目标水印模板文件信息;根据目标水印模板文件信息获取水印模板文件。当系统内预先设置有不同的密级等级对应的水印模板文件,且水印模板文件信息包括水印模板文件的存储地址时,在确定密级等级对应的目标水印模板文件信息后,可以基于目标水印模板文件信息中的目标存储地址得到水印模板文件。当水印模板文件信息包括:密级等级对应的水印信息时,在确定密级等级对应的目标水印模板文件信息后,可以根据目标水印模板文件信息中的密级等级对应的水印信息,利用开源工具pyPDF2生成的与密级等级相适应的带水印的水印模板文件。
步骤S31,将水印模板文件和目标文件合并,以生成新的目标文件;
生成的新的目标文件不仅具有水印模板文件中与密级等级相对应的水印还具有读取的文件内容。具体地,可以利用开源工具pyPDF2将生成的与密级等级相适应的带水印的水印模板文件与目标文件合并,生成新的目标文件。
相应的,读取目标文件的文件内容,包括:
读取新的目标文件的文件内容。
具体地,目前,对涉密文档的打印水印功能普遍采取的做法是使用特定应用程序的水印功能接口来实现,发明人认为,使用特定应用程序的水印功能接口来实现对涉密文档的水印功能打印这一方案对应用程序依赖性太强,若应用程序不提供添加水印功能接口则不能控制涉密文档的打印水印功能,所以通用性较差,有时甚至造成功能缺失问题。
基于上述实施例,根据文档属性信息中密级等级确定与之对应的水印模板文件,将与密级等级相适应的水印模板文件与写入文档内容的目标文件合并,生成新的目标文件,能够准确打印密级等级相适应的文件。
进一步的,在本申请实施例中,为了方便对写入文档内容后的临时文件与全局结构体保存的文件路径名称的控制与使用,还包括步骤S40(附图未示出)、步骤S41(附图未示出),其中:
步骤S40,识别创建的临时文件的目录;其中,当创建临时文件的同时创建临时文件的目录。
具体地,在本申请实施例中,调用环境变量基于临时文件的名称,从所有目录中确定创建的临时文件的目录。
步骤S41,利用unlink函数删除创建的临时文件的目录以及临时文件。
相应的,在利用send函数发送文件内容至打印机之后,还包括:利用unlink函数删除全局结构体保存的文件路径名称,并利用close函数关闭目标文件。
close函数是Linux底层函数,Linux系统无时无刻在调用close函数,当计算机设备执行与close相关的操作,都会调用close函数,其中,与close相关的操作包括关闭文档、关闭文件、关闭设备、关闭驱动等等。
系统在调用close函数关闭临时文件后,此时进程中没有临时文件,在后续添加水印时会影响文件合并,因此本申请实施例在创建一个临时文件后立即调用unlink函数删除创建的临时文件的目录以及临时文件,由于保存的文件路径名称还在进程中应用,此时临时文件的引用计数不为0,临时文件是可以访问和操作的。对应的,在添加水印后调用close函数,关闭写入文档内容的临时文件即目标文件,通过调用unlink函数删除全局结构体保存的文件路径名称,此时引用计数为0,删除目标文件、临时文件目录。
基于上述实施例,利用unlink函数删除识别到的临时文件的目录,因为此时临时文件是打开的,所以可以访问和使用临时文件,在调用close函数关闭文件后彻底删除临时文件,利用unlink函数删除全局结构体保存的文件路径名称,并调用close函数关闭目标文件,此时删除写入内容到的临时文件,并且删除保存在全局结构体的文件路径名称,避免了系统自动删除的不确定性,方便对写入文档内容后的临时文件与全局结构体保存的文件路径名称的控制与使用。
下面对本申请实施例提供的一种Linux系统下控制文档打印的装置进行介绍,下文描述的Linux系统下控制文档打印的装置与上文描述的Linux系统下控制文档打印的方法可相互对应参照,请参考图2,图2为本申请实施例提供的一种Linux系统下控制文档打印的装置的结构示意图,包括:
信息获取模块210:用于在检测到用户触发待打印文档的打印请求后,获取待打印文档的文档属性信息和待打印文档内容;
打印协议信息处理模块220:用于根据文档属性信息和预设的打印协议信息格式,生成打印协议信息,并利用send函数将打印协议信息发送至打印机;
文件创建模块230:用于创建临时文件;
文档内容处理模块240:用于读取待打印文档内容,并利用write函数将读取的待打印文档内容写入临时文件,以生成目标文件;
文件内容处理模块250:用于读取目标文件的文件内容,并利用send函数发送文件内容至打印机,以使打印机根据打印协议信息以及文件内容实现待打印文档的打印。
本申请实施例的一种可能的实施方式,打印协议信息处理模块220执行利用send函数将打印协议信息发送至打印机时,具体用于:
根据send函数的多个文件句柄判断是否存在与待比较文件句柄相匹配的目标文件句柄,待比较文件句柄为获取待打印文档的文档属性信息和待打印文档内容时得到的;
若存在目标文件句柄,则判断send函数的形式参数所指向的第一内容中是否存在打印操作的字符串;
若存在打印操作的字符串,则利用send函数将打印协议信息发送至打印机。
本申请实施例的一种可能的实施方式,文档属性信息包括打印权限,打印协议信息处理模块220执行若存在打印操作的字符串,则利用send函数将打印协议信息发送至打印机时,具体用于:
若存在打印操作的字符串,则根据打印权限判断待打印文档是否为允许打印文档;
若待打印文档为允许打印文档,则利用send函数将打印协议信息发送至打印机。
本申请实施例的一种可能的实施方式,文档内容处理模块240执行读取待打印文档内容,并利用write函数将读取的待打印文档内容写入临时文件时,具体用于:
确定每次读取的预设文档内容字节数;
根据预设文档内容字节数分次读取待打印文档内容,并利用write函数将读取到的内容写入临时文件。
本申请实施例的一种可能的实施方式,文档内容处理模块240执行利用write函数将读取到的内容写入临时文件时,具体用于:
从write函数的形式参数所指向的第二内容中确定开始字符串;
确定与开始字符串对应的待打印文档的文件路径名称,并将文件路径名称存储至全局结构体;
利用write函数将读取的待打印文档的待打印子文档内容写入临时文件,其中,待打印文档内容至少包括待打印子文档内容,读取的待打印子文档内容包括开始字符串且待打印子文档内容的字节数为预设文档内容字节数;
判断待打印子文档内容是否存在结束字符串;
若存在,则确定文档内容完全写入临时文件,得到目标文件;
若不存在,则确定第二内容中每一文档内容对应的文档路径地址名称,并根据每一文档路径地址名称从第二内容中,确定与全局结构体中的文件路径名称对应的文档内容,作为新的待打印文档内容,迭代写入临时文件,直至得到目标文件。
本申请实施例的一种可能的实施方式,文档属性信息还包括:密级等级,Linux系统下控制文档打印的装置还包括:
水印添加模块:用于根据密级等级确定水印模板文件,其中,密级等级包括公开、内部、秘密、机密、绝密;
将水印模板文件和目标文件合并,以生成新的目标文件;
相应的,文件内容处理模块250在执行读取目标文件的文件内容时,具体用于:
读取新的目标文件的文件内容。
本申请实施例的一种可能的实施方式,还包括:
第一删除模块:用于识别创建的临时文件的目录;
利用unlink函数删除创建的临时文件的目录以及临时文件;
第二删除模块:用于利用unlink函数删除全局结构体保存的文件路径名称,并利用close函数关闭目标文件。下面对本申请实施例提供的一种电子设备进行介绍,下文描述的电子设备与上文描述的方法可相互对应参照。
本申请实施例中提供了一种电子设备,如图3所示,图3为本申请实施例提供的一种计算机设备的结构示意图。图3所示的电子设备300包括:处理器301和存储器303。其中,处理器301和存储器303相连,如通过总线302相连。可选地,电子设备300还可以包括收发器304。需要说明的是,实际应用中收发器304不限于一个,该电子设备300的结构并不构成对本申请实施例的限定。
处理器301可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器301也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线302可包括一通路,在上述组件之间传送信息。总线302可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线302可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器303可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器303用于存储执行本申请方案的应用程序代码,并由处理器301来控制执行。处理器301用于执行存储器303中存储的应用程序代码,以实现前述方法实施例所示的内容。
其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等的移动终端以及诸如数字TV、台式计算机等的固定终端。图3示出的电子设备仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
下面对本申请实施例提供的一种计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的方法可相互对应参照。
一种计算机可读存储介质,计算机可读存储介质中存储有指令,指令在计算机上执行时,使得计算机执行如上Linux系统下控制文档打印的方法的步骤。与相关技术相比,本申请实施例中,当检测到用户触发打印请求后,获取待打印文档的文档属性信息和待打印文档内容;根据文档属性信息和预设的打印协议信息格式,生成打印协议信息,并利用Linux系统的底层函数send函数直接将打印协议信息发送至打印机,再利用Linux系统的底层函数write函数将待打印文档内容直接写入到创建的临时文件,并将写入待打印文档内容的临时文件作为目标文件,利用send函数发送读取的目标文件的文件内容至打印机,因为send函数和write函数均为Linux最底层的函数,能够直接将打印协议信息和文件内容发送至打印机,因此不再需要匹配打印机协议接口,能够兼容多种打印机,提高了文档打印的兼容性,避免了相关技术利用上层函数进行文档打印控制时需要匹配特定的打印机造成的兼容性差的问题。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以用其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (9)
1.一种Linux系统下控制文档打印的方法,其特征在于,包括:
在检测到用户触发待打印文档的打印请求后,获取待打印文档的文档属性信息和待打印文档内容;
根据所述文档属性信息和预设的打印协议信息格式,生成打印协议信息,并利用send函数将所述打印协议信息发送至打印机;
创建临时文件;
读取所述待打印文档内容,并利用write函数将读取的所述待打印文档内容写入临时文件,以生成目标文件;
读取所述目标文件的文件内容,并利用send函数发送所述文件内容至所述打印机,以使所述打印机根据所述打印协议信息以及所述文件内容实现所述待打印文档的打印;
其中,利用send函数将所述打印协议信息发送至打印机,包括:
根据send函数的多个文件句柄判断是否存在与待比较文件句柄相匹配的目标文件句柄,所述待比较文件句柄为获取待打印文档的文档属性信息和待打印文档内容时得到的;
若存在所述目标文件句柄,则判断所述send函数的形式参数所指向的第一内容中是否存在打印操作的字符串;
若存在所述打印操作的字符串,则利用send函数将所述打印协议信息发送至打印机。
2.根据权利要求1所述的Linux系统下控制文档打印的方法,其特征在于,所述文档属性信息包括打印权限,所述若存在所述打印操作的字符串,则利用send函数将所述打印协议信息发送至打印机,包括:
若存在所述打印操作的字符串,则根据所述打印权限判断所述待打印文档是否为允许打印文档;
若待打印文档为允许打印文档,则利用send函数将所述打印协议信息发送至打印机。
3.根据权利要求1所述Linux系统下控制文档打印的方法,其特征在于,所述读取所述待打印文档内容,并利用write函数将读取的所述待打印文档内容写入临时文件,包括:
确定每次读取的预设文档内容字节数;
根据所述预设文档内容字节数分次读取待打印文档内容,并利用write函数将读取到的内容写入临时文件。
4.根据权利要求3所述Linux系统下控制文档打印的方法,其特征在于,所述利用write函数将读取到的内容写入临时文件,包括:
从write函数的形式参数所指向的第二内容中确定开始字符串;
确定与所述开始字符串对应的待打印文档的文件路径名称,并将所述文件路径名称存储至全局结构体;
利用write函数将读取的所述待打印文档的待打印子文档内容写入临时文件,其中,所述待打印文档内容至少包括待打印子文档内容,读取的所述待打印子文档内容包括开始字符串且所述待打印子文档内容的字节数为预设文档内容字节数;
判断所述待打印子文档内容是否存在结束字符串;
若存在,则确定所述文档内容完全写入所述临时文件,得到目标文件;
若不存在,则确定所述第二内容中每一文档内容对应的文档路径地址名称,并根据每一所述文档路径地址名称从所述第二内容中,确定与所述全局结构体中的文件路径名称对应的文档内容,作为新的待打印文档内容,迭代写入临时文件,直至得到目标文件。
5.根据权利要求3所述Linux系统下控制文档打印的方法,其特征在于,所述文档属性信息还包括:密级等级,在读取所述目标文件的文件内容之前,还包括:
根据所述密级等级确定水印模板文件,其中,密级等级包括公开、内部、秘密、机密、绝密;
将所述水印模板文件和所述目标文件合并,以生成新的目标文件;
相应的,所述读取所述目标文件的文件内容,包括:
读取所述新的目标文件的文件内容。
6.根据权利要求4所述Linux系统下控制文档打印的方法,其特征在于,还包括:
识别创建的临时文件的目录;
利用unlink函数删除创建的临时文件的目录以及临时文件;
相应的,在利用send函数发送所述文件内容至所述打印机之后,还包括:
利用unlink函数删除全局结构体保存的文件路径名称,并利用close函数关闭所述目标文件。
7. Linux系统下控制文档打印的装置,其特征在于,所述装置包括:
信息获取模块:用于在检测到用户触发待打印文档的打印请求后,获取待打印文档的文档属性信息和待打印文档内容;
打印协议信息处理模块:用于根据所述文档属性信息和预设的打印协议信息格式,生成打印协议信息,并利用send函数将所述打印协议信息发送至打印机;
文件创建模块:用于创建临时文件;
文档内容处理模块:用于读取所述待打印文档内容,并利用write函数将读取的所述待打印文档内容写入临时文件,以生成目标文件;
文件内容处理模块:用于读取所述目标文件的文件内容,并利用send函数发送所述文件内容至所述打印机,以使所述打印机根据所述打印协议信息以及所述文件内容实现所述待打印文档的打印;
打印协议信息处理模块执行利用send函数将所述打印协议信息发送至打印机时,具体用于:
根据send函数的多个文件句柄判断是否存在与待比较文件句柄相匹配的目标文件句柄,所述待比较文件句柄为获取待打印文档的文档属性信息和待打印文档内容时得到的;
若存在所述目标文件句柄,则判断所述send函数的形式参数所指向的第一内容中是否存在打印操作的字符串;
若存在所述打印操作的字符串,则利用send函数将所述打印协议信息发送至打印机。
8.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器上存储有能够被处理器加载并执行如权利要求1至6中任一种所述的方法的计算机程序。
9.一种计算机可读存储介质,其特征在于,存储有能够被处理器加载并执行如权利要求1至6中任一种所述的方法的计算机程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210444036.3A CN114564158B (zh) | 2022-04-24 | 2022-04-24 | Linux系统下控制文档打印的方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210444036.3A CN114564158B (zh) | 2022-04-24 | 2022-04-24 | Linux系统下控制文档打印的方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114564158A CN114564158A (zh) | 2022-05-31 |
CN114564158B true CN114564158B (zh) | 2022-07-15 |
Family
ID=81721044
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210444036.3A Active CN114564158B (zh) | 2022-04-24 | 2022-04-24 | Linux系统下控制文档打印的方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114564158B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116483294B (zh) * | 2023-06-25 | 2023-09-01 | 闪捷信息科技有限公司 | 基于Linux内核管控的打印机水印添加方法和装置 |
CN117170600B (zh) * | 2023-11-02 | 2024-02-23 | 中科方德软件有限公司 | Linux系统的打印处理方法、系统、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003341187A (ja) * | 2002-05-28 | 2003-12-03 | Nec Access Technica Ltd | プリンタ装置、該プリンタ装置で用いられる印刷制御方法、及び印刷制御プログラム。 |
CN101383690A (zh) * | 2008-10-27 | 2009-03-11 | 西安交通大学 | 一种基于socket的容错计算机系统的网络同步方法 |
CN103222235A (zh) * | 2010-11-10 | 2013-07-24 | 电子影像公司 | 用于无线设备与其他设备之间的交互的协议 |
CN110531942A (zh) * | 2019-08-07 | 2019-12-03 | 北京数衍科技有限公司 | 基于嵌入式Linux的打印数据桥接系统和桥接方法 |
CN112181328A (zh) * | 2020-11-30 | 2021-01-05 | 统信软件技术有限公司 | 一种打印控制系统、方法及计算设备 |
CN113064560A (zh) * | 2021-03-23 | 2021-07-02 | 珠海奔图电子有限公司 | 打印控制方法、打印驱动装置、图像形成设备及存储介质 |
-
2022
- 2022-04-24 CN CN202210444036.3A patent/CN114564158B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003341187A (ja) * | 2002-05-28 | 2003-12-03 | Nec Access Technica Ltd | プリンタ装置、該プリンタ装置で用いられる印刷制御方法、及び印刷制御プログラム。 |
CN101383690A (zh) * | 2008-10-27 | 2009-03-11 | 西安交通大学 | 一种基于socket的容错计算机系统的网络同步方法 |
CN103222235A (zh) * | 2010-11-10 | 2013-07-24 | 电子影像公司 | 用于无线设备与其他设备之间的交互的协议 |
CN110531942A (zh) * | 2019-08-07 | 2019-12-03 | 北京数衍科技有限公司 | 基于嵌入式Linux的打印数据桥接系统和桥接方法 |
CN112181328A (zh) * | 2020-11-30 | 2021-01-05 | 统信软件技术有限公司 | 一种打印控制系统、方法及计算设备 |
CN113064560A (zh) * | 2021-03-23 | 2021-07-02 | 珠海奔图电子有限公司 | 打印控制方法、打印驱动装置、图像形成设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114564158A (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114564158B (zh) | Linux系统下控制文档打印的方法、装置、设备及介质 | |
JP5215779B2 (ja) | 情報処理装置及び情報処理方法 | |
US20080244738A1 (en) | Access control | |
CN106843978B (zh) | 一种sdk接入方法及系统 | |
US8341733B2 (en) | Creating secured file views in a software partition | |
TW200525358A (en) | Method and apparatus for smart memory pass-through communication | |
EP2188741A2 (en) | Storing custom metadata using custom access control entries | |
CN111241565A (zh) | 文件控制方法、装置、电子设备及存储介质 | |
CN110888838A (zh) | 基于对象存储的请求处理方法、装置、设备及存储介质 | |
US20170371894A1 (en) | Samba configuration management method and system for network device | |
CN110888843A (zh) | 一种跨主机的稀疏文件拷贝方法、装置、设备及存储介质 | |
CN108846129B (zh) | 存储数据访问方法、装置及存储介质 | |
CN114021089A (zh) | 一种目录访问控制方法、装置、设备及可读存储介质 | |
CN104036194A (zh) | 一种应用程序中泄露隐私数据的漏洞检测方法及装置 | |
CN110086836B (zh) | 获取元数据的方法和装置 | |
CN114329367B (zh) | 网盘文件追溯方法、装置、网盘及存储介质 | |
CN111414339B (zh) | 一种文件的处理方法、系统、装置、设备及介质 | |
CN106796644B (zh) | 访问控制系统及访问控制方法 | |
US20200344372A1 (en) | Information processing apparatus and non-transitory computer readable medium storing information processing program | |
CN109144948B (zh) | 应用文件定位的方法、装置、电子设备和存储器 | |
JP5146880B2 (ja) | 情報管理装置、情報管理システム、情報管理プログラム、及び情報管理方法 | |
JP5972455B2 (ja) | 情報を削除する方法 | |
US11010346B2 (en) | Methods and apparatus for managing access to file content | |
CN110019057B (zh) | 请求处理方法及装置 | |
JP2003177987A (ja) | Ftp端末、ftpを用いたファイル転送方法およびそのプログラム |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |