CN116382604A - 一种在网页打印pdf文件的方法、系统、存储介质、设备 - Google Patents
一种在网页打印pdf文件的方法、系统、存储介质、设备 Download PDFInfo
- Publication number
- CN116382604A CN116382604A CN202310616005.6A CN202310616005A CN116382604A CN 116382604 A CN116382604 A CN 116382604A CN 202310616005 A CN202310616005 A CN 202310616005A CN 116382604 A CN116382604 A CN 116382604A
- Authority
- CN
- China
- Prior art keywords
- iframe
- printing
- module
- pdf file
- 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.)
- Granted
Links
- 238000007639 printing Methods 0.000 title claims abstract description 76
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000009877 rendering Methods 0.000 claims abstract description 26
- 230000015654 memory Effects 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 2
- 238000002835 absorbance Methods 0.000 description 2
- 239000011230 binding agent Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000282376 Panthera tigris Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010017 direct printing Methods 0.000 description 1
- 230000000763 evoking effect Effects 0.000 description 1
- -1 fireFox Chemical compound 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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
- G06F3/1203—Improving or facilitating administration, e.g. print management
- G06F3/1204—Improving or facilitating administration, e.g. print management resulting in reduced user or operator actions, e.g. presetting, automatic actions, using hardware token storing data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- 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
- G06F3/1222—Increasing security of the print job
-
- 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/1238—Secure printing, e.g. user identification, user rights for device usage, unallowed content, blanking portions or fields of a page, releasing held jobs
-
- 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
-
- 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/1278—Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
- G06F3/128—Direct printing, e.g. sending document file, using memory stick, printing from a camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2107—File encryption
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Record Information Processing For Printing (AREA)
Abstract
本发明属于打印技术领域,具体涉及一种在网页打印PDF文件的方法、系统、存储介质、设备。其中方法包括步骤:S1、利用待打印PDF文件数据创建浏览器Blob类文件对象;S2、创建浏览器Blob类文件对象的URL;S3、创建iframe,并将其隐藏;S4、将iframe的被嵌套页面地址设置为步骤S2中创建的URL;S5、将iframe放到网页document的body中进行渲染;S6、获取iframe的window对象;S7、执行window对象的打印方法,唤起打印机打印界面,打印iframe窗口的内容。本发明实现了在网页不依赖第三方软件直接打印PDF文件的目的。
Description
技术领域
本发明属于打印技术领域,具体涉及一种在网页打印PDF文件的方法、系统、存储介质、设备。
背景技术
一些信息系统涉及到了诸如电子发票、电子合同这类PDF文件的打印需求,由于这类系统大多都是基于浏览器的开发模式,而浏览器针对网页中PDF文件默认所支持的操作仅为预览或下载,浏览器对象模型(Browser Object Model (BOM))中也并未提供直接对PDF文件进行打印的接口。
因此,现有方案中针对网页里PDF文件的打印通常需要把PDF文件在当前浏览器的新标签页打开后,在单独的预览页面进行打印;或者将PDF文件下载到本地后,通过本地安装的相关软件,比如WPS、Adobe Reader等进行打印;亦或者通过安装一套专用的打印系统软件在本地或专用服务器,当在网页点击打印时,通过网络请求将需要打印的PDF信息发送给该系统软件,再由它进行打印。此外,现有技术中的PDF文件大多以静态资源形式存放在服务器,再在网页中通过以“.pdf”为后缀的URL进行获取,该方式安全性差,容易造成敏感源文件的泄露,对于网页爬虫来说也可以轻易进行抓取。
现有专利,例如申请号为CN202110342100.2的中国发明专利,其公开了一种无需插件在页面直接打印PDF文件的实现方法,其虽然无需浏览器插件,但是却必须依赖于本地安装的第三方软件Adobe Reader,而该专利中调用的接口printWithDialog是ie浏览器为Adobe Reader软件提供的私有接口;因此如其摘要中说述,仅适用于ie浏览器,无法适用于目前主流的浏览器,如Chrome、Edge、FireFox等;ie浏览器本身也在2022年6月由微软正式宣布退役,由Edge浏览器取而代之。
例如申请号为CN201710719188.9的中国发明专利,其公开了一种PDF电子发票版式文件的在线打印系统,其虽然可以实现无需再手工下载PDF文件到本地再通过PDF阅览器导入文件进行打印,也无需通过浏览器直接打开PDF文件在预览页面进行打印,但是需要部署一套专门的独立于浏览器的打印系统,在打印时将PDF数据通过http网络请求发送给对应系统才能进行打印。
由此可见,现有技术方案在对网页上的PDF文件进行打印时,要么需要将PDF下载下来,对于敏感文件的本地留存,可能存在安全隐患;要么需要借助第三方工具,才能完成打印,比较繁琐。
发明内容
针对现有技术中存在的上述问题,本发明提供一种在网页打印PDF文件的方法、系统、存储介质、设备,实现了在网页不依赖第三方软件直接打印PDF文件的目的。
本发明采用以下技术方案:
本发明实施例第一方面提供一种在网页打印PDF文件的方法,包括步骤:
S1、利用待打印PDF文件数据创建浏览器Blob类文件对象;
S2、创建浏览器Blob类文件对象的URL;
S3、创建iframe,并将其隐藏;
S4、将iframe的被嵌套页面地址设置为步骤S2中创建的URL;
S5、将iframe放到网页document的body中进行渲染;
S6、获取iframe的window对象;
S7、执行window对象的打印方法,唤起打印机打印界面,打印iframe窗口的内容。
作为优选方案,步骤S1之前,还包括步骤:
赋予待打印PDF文件数据唯一标识ID,并对待打印PDF文件数据进行数据加密;
服务器端通过预设接口获取待打印PDF文件数据的唯一标识ID,并基于该唯一标识ID返回经加密后的待打印PDF文件数据。
浏览器请求预设接口,预先加载并解密所述加密后的待打印PDF文件数据。
作为优选方案,步骤S1之前,还包括步骤:
判断浏览器环境是否支持PDF文件渲染,若不支持则对用户进行提示,并结束打印。
作为优选方案,步骤S5与步骤S6之间包括步骤:获取iframe的焦点。
作为优选方案,步骤S3中,创建iframe时赋予其预先定义的常量字符串作为其frameId;
步骤S3之前,还包括步骤,基于预先定义的常量字符串,判断是否存在已创建的iframe,若存在则直接使用已创建的iframe并将其隐藏后执行步骤S4。
本发明实施例第二方面提供一种在网页打印PDF文件的系统,包括依次连接的Blob类文件对象创建模块、URL创建模块、属性更换模块、渲染模块、window对象获取模块、打印执行模块,还包括与属性更换模块连接的iframe创建模块;
Blob类文件对象创建模块,用于利用待打印PDF文件数据创建浏览器Blob类文件对象;
URL创建模块,用于创建浏览器Blob类文件对象的URL;
iframe创建模块,用于创建iframe,并将其隐藏;
属性更换模块,用于将iframe的被嵌套页面地址设置为URL创建模块创建的URL;
渲染模块,用于将iframe放到网页document的body中进行渲染;
window对象获取模块,用于获取iframe的window对象;
打印执行模块,用于执行window对象的打印方法,唤起打印机打印界面,打印iframe窗口的内容。
作为优选方案,还包括依次连接的数据加密模块、数据获取模块、数据解密模块,数据解密模块还与Blob类文件对象创建模块连接;
数据加密模块,用于赋予待打印PDF文件数据唯一标识ID,并对待打印PDF文件数据进行数据加密;
数据获取模块,用于通过预设接口获取待打印PDF文件数据的唯一标识ID,并基于该唯一标识ID返回经加密后的待打印PDF文件数据;
数据解密模块,用于请求预设接口,预先加载并解密所述加密后的待打印PDF文件数据。
作为优选方案,还包括分别与渲染模块、window对象获取模块连接的iframe焦点获取模块;
iframe焦点获取模块,用于获取iframe的焦点。
本发明实施例第三方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如本发明实施例第一方面及第一方面任一项所述的一种在网页打印PDF文件的方法。
本发明实施例第四方面提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如本发明实施例第一方面及第一方面任一项所述的一种在网页打印PDF文件的方法。
本发明的有益效果是:
基于现代浏览器普遍具有的PDF文件预览功能以及窗口打印功能,利用浏览器原生Blob类文件对象作为媒介,将待打印PDF文件预先转换为Blob类文件对象,接着利用一个临时创建的隐藏iframe内联框架元素对其进行离屏渲染,最后借助iframe内嵌window窗口对象上的print打印方法唤起默认打印机打印界面,实现了在网页不依赖第三方软件直接打印PDF文件的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的一种在网页打印PDF文件的方法的流程图;
图2是根据本发明实施例的一种在网页打印PDF文件的系统的结构框图;
图3是根据本发明实施例提供的计算机可读存储介质的结构示意图;
图4是根据本发明实施例提供的电子设备的结构示意图。
具体实施方式
以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
实施例一:
参照图1所示,本实施例提供一种在网页打印PDF文件的方法,包括以下步骤:
步骤S1、在服务器端提供一个获取加密后的PDF文件内容接口,该接口以http方式提供服务,接收待打印PDF文件的唯一标识ID,返回经加密后的pdf数据。
该接口请求方式为:GET,必传参数:ID,消息传输格式:TEXT。
具体的,该接口根据接收到的PDF文件唯一标识ID,获取对应PDF文件,本领域技术人员可以理解的是,唯一标识ID通过UUID通用唯一识别码(Universally UniqueIdentifier)来生成,并通过数据库存储该标识ID与实际文件路径的映射关系,再利用实际文件路径,将具体PDF文件以字节流的形式读取出来。使用UUID而不是直接使用文件名称,可以确保敏感文件信息不被泄露,增加了系统的安全性。
具体的,加密方式为利用BASE64编码对读取出来的PDF字节流进行转换,通过将二进制数据转换为基于64个可打印字符表示的字符串以达到加密效果,然后创建成UTF8编码的字符串,用于最终输出;使用BASE64进行处理而非直接返回文档字节流,进一步增加了系统的安全性。
具体的,TEXT格式指http请求的响应体格式,其MIME类型为application/text,MIME类型(Multipurpose Internet Mail Extensions,媒体类型)是一种标准,用来表示文档、文件或字节流的性质和格式。
步骤S2、获取打印指令,并通过JS脚本中的supportPrint方法测试当前浏览器环境是否支持PDF文件渲染,如果没有则对用户进行提示。
具体的,获取打印指令通过在浏览器前端页面使用HTML创建一个打印button按钮,并利用JS脚本绑定该button点击时触发的click事件来实现;当用户在浏览器点击打印按钮时触发打印操作进入接下来的所述步骤之中。
具体的,supportPrint方法通过调用浏览器对象模型所提供的navigator.pdfViewerEnabled接口来实现,navigator.pdfViewerEnabled是现代浏览器共有的Navigator对象提供的接口,用于检测浏览器是否支持PDF文件的内联渲染,只要通过该接口判断当前浏览器支持PDF文件的内联渲染,就能使用本实施例所述方法进行后续处理;现代浏览器,包括目前主流浏览器Chrome、Edge、FireFox、Safari、Opera,以及国产浏览器诸如奇虎360浏览器、QQ浏览器、搜狗浏览器、UC浏览器等均默认支持PDF文件的内联渲染,因此本方法对现代主流浏览器具有良好的普适性。
具体的,当supportPrint方法检测到当前浏览器环境无法适用本实施例所述方法时,使用window.alert方法在浏览器中显示一个警告对话框,告知用户遇到的问题及解决方式。
步骤S3、通过XMLHttpRequest请求步骤S1中所提供的接口,预先加载并利用atob方法解密要打印的PDF文件内容。
具体的,XMLHttpRequest请求URL为步骤S1所述接口URL,URL参数为待打印PDF文件标识ID,请求方式为GET,响应类型为TEXT;本领域技术人员可以理解的是,XMLHttpRequest是浏览器提供的用于与服务器交互请求的对象,用于与服务器进行http通信。
具体的,解密XMLHttpRequest获取到的加密文件内容时,使用浏览器DOM对象提供的atob方法,该方法用于解码使用BASE64编码的字符串,利用该方法处理得到解码后的二进制PDF文件内容,用于接下来的步骤处理。
步骤S4、利用步骤S3加载解密好的PDF文件数据创建浏览器Blob类文件对象。
具体的,将解密好的PDF二进制数据作为参数,调用window.Blob方法,并设置Blob类型为application/pdf,创建出对应的Blob对象。其中Blob对象表示一个不可变、原始数据的类文件对象,window.Blob方法为浏览器所提供的原生方法;需要注意的是Blob对象的MIME媒体类型必须设置为:application/pdf,这样才能确保该对象能在接下来的步骤中进行正确的离屏渲染。
步骤S5、利用URL接口的createObjectURL方法创建S4中Blob对象的URL。
具体的,通过调用window.URL.createObjectURL方法,传入步骤S4中生成的Blob对象,生成对应URL对象。其中window.URL.createObjectURL方法为浏览器提供的原生方法,传入Blob对象调用该方法会创建一个DOMString,包含一个表示参数中给出对象的URL。
步骤S6、创建一个具有唯一frameId的iframe并将其隐藏。
具体的,通过调用let printFrame = docu-ment.createElement('iframe')方法创建一个iframe,并将该iframe储存为变量printFrame;iframe是HTML内联框架元素,表示嵌套的浏览器上下文,它能够将另一个HTML页面嵌入到当前页面中;通过调用printFrame.setAttribute('id', frameId) 为该frame设置id,其中frameId为该iframe的唯一标识,目的是在创建前通过该id来判断是否已经存在创建好的iframe,如果存在则直接使用已创建的iframe,避免创建多次导致性能消耗。
具体的:隐藏该iframe通过调用printFrame.setAttribute('style','visibility:hidden;position:absolute;height:0;width:0;border:0')来实现,设置方式为将CSS样式中的visibility可见性设置为hidden不可见、position位置设置为absolute绝对、height高度设置为0、width宽度设置为0、border边框设置为0。
步骤S7、将S6中创建的iframe对象通过setAttribute('src', pdfBlob)方法来将被嵌套页面地址src设置为S5中创建的URL对象。
具体的,通过调用printFrame.setAttribute('src', pdfURL)实现,其中printFrame为步骤S6中创建的iframe,setAttribute方法用于创建或改变某个dom元素的属性,pdfBlob为步骤S5中创建的URL对象。
步骤S8、通过getElementsByTagName('body')[0]获取网页body子元素,再通过appendChild方法将S7中的iframe放到网页document的body中进行加载。
具体的,通过调用docu-ment.getElementsByTagName('body')[0].appendChild(printFrame)来实现获取子元素以及添加printFrame的操作。
步骤S9、在S8加载的iframe的onload事件中利用focus方法获取该iframe的焦点。
具体的,通过printFrame.onload = () =>{printFrame.focus()}给printFrame绑定onload事件,onload事件将在iframe载入完成后被触发,触发后再调用focus方法获取printFrame的焦点,需要注意的是必须获取焦点后,才能确保最终打印的内容只包含将要打印的PDF文件,避免打印的页面范围不对。
步骤S10、获取S9中iframe的当前window对象contentWindow。
具体的,在步骤S9绑定的onload事件响应方法中,调用let printWindow =printFrame.contentWindow获取window对象,并保存到变量printWindow。
步骤S11、执行步骤S10中contentWindow对象的print打印方法。
具体的,通过在步骤S9绑定的onload事件响应方法中调用printWindow.print()方法,打印该隐藏iframe窗口的内容,唤起默认打印机打印页面,结束打印流程。
相比于当前已有的网页PDF文件打印方法,本实施例主要具有以下优点和效果:
(1)、基于上述内容可知,本实施例所述的PDF打印方法,在XMLHttpRequest对象、Blob类文件对象、URL接口、iframe内联框架元素等浏览器原生功能的基础上,即可实现在网页中PDF的直接打印,不需要借助浏览器插件或第三方软件的支持,独立性更强。
(2)、用户无需安装插件或软件,无需下载PDF文件到本地,也无需跳转到单独的预览页面进行打印,操作简便快捷。
(3)、通过在服务器端提供一个获取加密PDF文件内容的接口,再在浏览器进行解密,能够不暴露PDF文件的静态资源地址,保证了整个打印过程的安全性。
(4)、本实施例对现代主流浏览器具有良好的普适性。
实施例二:
参照图2所示,本实施例提供一种在网页打印PDF文件的系统,包括依次连接的Blob类文件对象创建模块、URL创建模块、属性更换模块、渲染模块、window对象获取模块、打印执行模块,还包括与属性更换模块连接的iframe创建模块;
Blob类文件对象创建模块,用于利用待打印PDF文件数据创建浏览器Blob类文件对象;
URL创建模块,用于创建浏览器Blob类文件对象的URL;
iframe创建模块,用于创建iframe,并将其隐藏;
属性更换模块,用于将iframe的被嵌套页面地址设置为URL创建模块创建的URL;
渲染模块,用于将iframe放到网页document的body中进行渲染;
window对象获取模块,用于获取iframe的window对象;
打印执行模块,用于执行window对象的打印方法,唤起打印机打印界面,打印iframe窗口的内容。
进一步,系统还包括依次连接的数据加密模块、数据获取模块、数据解密模块,数据解密模块还与Blob类文件对象创建模块连接;
数据加密模块,用于赋予待打印PDF文件数据唯一标识ID,并对待打印PDF文件数据进行数据加密;
数据获取模块,用于通过预设接口获取待打印PDF文件数据的唯一标识ID,并基于该唯一标识ID返回经加密后的待打印PDF文件数据;
数据解密模块,用于请求预设接口,预先加载并解密所述加密后的待打印PDF文件数据。
系统还包括分别与渲染模块、window对象获取模块连接的iframe焦点获取模块;
iframe焦点获取模块,用于获取iframe的焦点。
其中,数据解密模块、Blob类文件对象创建模块、URL创建模块、iframe创建模块、属性更换模块、渲染模块、window对象获取模块、打印执行模块均设置于网页端,数据获取模块设置于服务器端。
需要说明的是,本实施例提供的一种在网页打印PDF文件的系统,与实施例一类似,在此不多做赘述。
实施例三:
参照图3所示,本发明实施例还提供一种存储介质,其上存储有计算机程序601,该指令被处理器执行时实现上述实施例中一种在网页打印PDF文件的方法的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述实施例一的流程。
其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard DiskDrive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
实施例四:
参照图4所示,本发明实施例还提供了一种电子设备,该电子设备可以包括处理器51和存储器52,其中处理器51和存储器52可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器51可以为中央处理器(Central Processing Unit,CPU)。处理器51还可以为其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器52作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施例中的对应的程序指令/模块。处理器51通过运行存储在存储器52中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述实施例一中的一种在网页打印PDF文件的方法。
存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作装置、至少一个功能所需要的应用程序;存储数据区可存储处理器51所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至处理器51。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述一个或者多个模块存储在所述存储器52中,当被所述处理器51执行时,执行实施例一中所述的一种在网页打印PDF文件的方法。
上述电子设备具体细节可以对应参阅实施例一中对应的相关描述和效果进行理解,此处不再赘述。
以上所述的实施例仅仅是对本发明的优选实施方式进行描述,并非对本发明的范围进行限定,在不脱离本发明设计精神的前提下,本领域普通技术人员对本发明的技术方案作出的各种变形和改进,均应落入本发明的保护范围内。
Claims (10)
1.一种在网页打印PDF文件的方法,其特征在于,包括步骤:
S1、利用待打印PDF文件数据创建浏览器Blob类文件对象;
S2、创建浏览器Blob类文件对象的URL;
S3、创建iframe,并将其隐藏;
S4、将iframe的被嵌套页面地址设置为步骤S2中创建的URL;
S5、将iframe放到网页document的body中进行渲染;
S6、获取iframe的window对象;
S7、执行window对象的打印方法,唤起打印机打印界面,打印iframe窗口的内容。
2.根据权利要求1所述的一种在网页打印PDF文件的方法,其特征在于,步骤S1之前,还包括步骤:
赋予待打印PDF文件数据唯一标识ID,并对待打印PDF文件数据进行数据加密;
服务器端通过预设接口获取待打印PDF文件数据的唯一标识ID,并基于该唯一标识ID返回经加密后的待打印PDF文件数据;
浏览器请求预设接口,预先加载并解密所述加密后的待打印PDF文件数据。
3.根据权利要求1所述的一种在网页打印PDF文件的方法,其特征在于,步骤S1之前,还包括步骤:
判断浏览器环境是否支持PDF文件渲染,若不支持则对用户进行提示,并结束打印。
4.根据权利要求1所述的一种在网页打印PDF文件的方法,其特征在于,步骤S5与步骤S6之间包括步骤:获取iframe的焦点。
5.根据权利要求1所述的一种在网页打印PDF文件的方法,其特征在于,步骤S3中,创建iframe时赋予其预先定义的常量字符串作为其frameId;
步骤S3之前,还包括步骤,基于预先定义的常量字符串,判断是否存在已创建的iframe,若存在则直接使用已创建的iframe并将其隐藏后执行步骤S4。
6.一种在网页打印PDF文件的系统,其特征在于,包括依次连接的Blob类文件对象创建模块、URL创建模块、属性更换模块、渲染模块、window对象获取模块、打印执行模块,还包括与属性更换模块连接的iframe创建模块;
Blob类文件对象创建模块,用于利用待打印PDF文件数据创建浏览器Blob类文件对象;
URL创建模块,用于创建浏览器Blob类文件对象的URL;
iframe创建模块,用于创建iframe,并将其隐藏;
属性更换模块,用于将iframe的被嵌套页面地址设置为URL创建模块创建的URL;
渲染模块,用于将iframe放到网页document的body中进行渲染;
window对象获取模块,用于获取iframe的window对象;
打印执行模块,用于执行window对象的打印方法,唤起打印机打印界面,打印iframe窗口的内容。
7.根据权利要求6所述的一种在网页打印PDF文件的系统,其特征在于,还包括依次连接的数据加密模块、数据获取模块、数据解密模块,数据解密模块还与Blob类文件对象创建模块连接;
数据加密模块,用于赋予待打印PDF文件数据唯一标识ID,并对待打印PDF文件数据进行数据加密;
数据获取模块,用于通过预设接口获取待打印PDF文件数据的唯一标识ID,并基于该唯一标识ID返回经加密后的待打印PDF文件数据;
数据解密模块,用于请求预设接口,预先加载并解密所述加密后的待打印PDF文件数据。
8.根据权利要求6所述的一种在网页打印PDF文件的系统,其特征在于,还包括分别与渲染模块、window对象获取模块连接的iframe焦点获取模块;
iframe焦点获取模块,用于获取iframe的焦点。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-5任一项所述的一种在网页打印PDF文件的方法。
10.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-5任一项所述的一种在网页打印PDF文件的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310616005.6A CN116382604B (zh) | 2023-05-29 | 2023-05-29 | 一种在网页打印pdf文件的方法、系统、存储介质、设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310616005.6A CN116382604B (zh) | 2023-05-29 | 2023-05-29 | 一种在网页打印pdf文件的方法、系统、存储介质、设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116382604A true CN116382604A (zh) | 2023-07-04 |
CN116382604B CN116382604B (zh) | 2023-10-10 |
Family
ID=86967865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310616005.6A Active CN116382604B (zh) | 2023-05-29 | 2023-05-29 | 一种在网页打印pdf文件的方法、系统、存储介质、设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116382604B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270216A (zh) * | 2010-06-04 | 2011-12-07 | 佳能株式会社 | 云计算系统及文档处理方法 |
CN107450869A (zh) * | 2017-08-21 | 2017-12-08 | 百望电子发票数据服务有限公司 | 一种pdf电子发票版式文件的在线打印系统及方法 |
US10303892B1 (en) * | 2015-10-12 | 2019-05-28 | Nextlabs, Inc. | Viewing protected documents in a web browser |
CN113238720A (zh) * | 2021-03-30 | 2021-08-10 | 紫光云技术有限公司 | 一种无需插件在页面直接打印pdf文件的实现方法 |
CN113360106A (zh) * | 2021-06-30 | 2021-09-07 | 建信金融科技有限责任公司 | 一种网页打印方法和装置 |
CN114118043A (zh) * | 2021-11-17 | 2022-03-01 | 粤港澳国际供应链(广州)有限公司 | 一种动态生成pdf的方法 |
CN115657983A (zh) * | 2022-12-28 | 2023-01-31 | 深圳市金政软件技术有限公司 | 基于浏览器进行打印的控制方法、装置、设备及存储介质 |
-
2023
- 2023-05-29 CN CN202310616005.6A patent/CN116382604B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270216A (zh) * | 2010-06-04 | 2011-12-07 | 佳能株式会社 | 云计算系统及文档处理方法 |
US10303892B1 (en) * | 2015-10-12 | 2019-05-28 | Nextlabs, Inc. | Viewing protected documents in a web browser |
CN107450869A (zh) * | 2017-08-21 | 2017-12-08 | 百望电子发票数据服务有限公司 | 一种pdf电子发票版式文件的在线打印系统及方法 |
CN113238720A (zh) * | 2021-03-30 | 2021-08-10 | 紫光云技术有限公司 | 一种无需插件在页面直接打印pdf文件的实现方法 |
CN113360106A (zh) * | 2021-06-30 | 2021-09-07 | 建信金融科技有限责任公司 | 一种网页打印方法和装置 |
CN114118043A (zh) * | 2021-11-17 | 2022-03-01 | 粤港澳国际供应链(广州)有限公司 | 一种动态生成pdf的方法 |
CN115657983A (zh) * | 2022-12-28 | 2023-01-31 | 深圳市金政软件技术有限公司 | 基于浏览器进行打印的控制方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116382604B (zh) | 2023-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101623223B1 (ko) | 하나의 인터넷 호스팅 시스템 집합에 의해 제공되는 다수의 병렬 사용자 경험 | |
US20190327287A1 (en) | Data acquisition method and device | |
US20140244812A1 (en) | Method, system and program for browser to switch ie core | |
US20160283606A1 (en) | Method for performing webpage loading, device and browser thereof | |
US12010165B2 (en) | Cross-platform module for loading across a plurality of device types | |
CN108874922B (zh) | 客户端设备、基于单页应用的网页渲染方法和存储介质 | |
CN102473171A (zh) | 将有关本地机器的信息传达给浏览器应用 | |
JP2012521609A (ja) | ウェブブラウザ経由のアプリケーションに対するコンテンツ入力 | |
US8867076B2 (en) | Installing printer applications on a printer using messages | |
US20150161082A1 (en) | Techniques for analyzing web pages to determine font subsets | |
CN106790276B (zh) | 一种基于浏览器协议的跨浏览器数据交互方法和装置 | |
US20100229081A1 (en) | Method for Providing a Navigation Element in an Application | |
CN110321504B (zh) | 一种页面处理方法及装置 | |
CN105589959A (zh) | 表单处理方法和表单系统 | |
CN103838558A (zh) | 网站建站系统及方法、访问网站的方法及网页适配系统 | |
CN112650714A (zh) | 文档展示方法、装置、设备及计算机可读介质 | |
CN110737860A (zh) | 一种富文本图片插入方法和装置 | |
CN112637361A (zh) | 一种页面代理方法、装置、电子设备及存储介质 | |
CN108885544B (zh) | 前端页面国际化处理方法、应用服务器及计算机可读存储介质 | |
CN104156421B (zh) | 页面的展现方法、装置及系统 | |
US11212287B2 (en) | Program execution control method, program, recording medium, web page, transmission server, client, and web system | |
JP5039946B2 (ja) | クライアント装置およびサーバ装置の間の通信を中継する技術 | |
EP1376411A2 (en) | Stylesheet proxy | |
CN109561131A (zh) | 一种基于编程语言下载excel数据的方法及电子设备 | |
CN116382604B (zh) | 一种在网页打印pdf文件的方法、系统、存储介质、设备 |
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 |