[发明专利]一种基于网页生成PDF的方法、装置、设备及存储介质在审
申请号: | 202211473789.3 | 申请日: | 2022-11-22 |
公开(公告)号: | CN115758027A | 公开(公告)日: | 2023-03-07 |
发明(设计)人: | 王蕴韬;张新;潘季明 | 申请(专利权)人: | 北京天融信网络安全技术有限公司;北京天融信科技有限公司;北京天融信软件有限公司 |
主分类号: | G06F16/958 | 分类号: | G06F16/958;G06F16/957 |
代理公司: | 北京金信知识产权代理有限公司 11225 | 代理人: | 韩岳松 |
地址: | 100085 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 网页 生成 pdf 方法 装置 设备 存储 介质 | ||
本申请提供一种基于网页生成PDF的方法、装置、设备及存储介质,所述方法包括:获得网页访问路径及待访问网页的核心内容的Xpath路径;基于所述网页访问路径向网页发送访问请求,获得反馈的网页数据;确定所述网页数据的网页元素节点树;基于所述Xpath路径中的内容及网页元素节点树确定出所述网页数据中需要删除的非核心数据,所述非核心数据为所述网页数据中除核心数据及其显示相关数据以外的数据;删除所述网页中的非核心数据;基于所述网页数据中显示的核心数据生成对应的PDF文件。本申请基于网页生成PDF的方法能够直接对网页内容转换为PDF文件,且排版正常,支持文件内容不失真放大。
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种基于网页生成PDF的方法、装置、设备及存储介质。
背景技术
PDF(Portable Document Format),是由Adobe Systems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,对于由网页直接转换而成的PDF文件,除了可以将内容不失真地放大外,还可以保留网页中的链接资源,同时支持文本内容的选取。
目前主流的将网页转为PDF的思路有两种:
1先扫描网页并截图,再将截图转换为PDF的两步走思路;
2使用专门的PDF转换工具直接将网页转为PDF的一步到位思路,例如,浏览器“打印”功能、Adobe、wkhtmltopdf。
具体地,现有方案1是通过执行PhantomJS以及预置的目标页面的访问路径,生成html文件,并将所述html文件保存在服务器的指定目录下;将所述html文件的文件路径传递给wkhtmltopdf;经由wkhtmltopdf、所述文件路径、预置的文件保存地址以及文件生成参数,生成PDF文件。实现流程如图1所示。
图1中“URL①”:该URL为需要转换的网页的访问路径;
图1中“路径②”:该路径为服务器中指定目录下的HTML文件的访问路径;
该方案1的重点在于PhantomJS和wkhtmltopdf的使用,服务器作为流程枢纽和存储中介也发挥了重要作用。具体分析如下:
1)PhantomJS模拟浏览器发送请求和处理响应内容,让生成的HTML文件和实际看到的一致,其headless的方式使其更具效率。
2)服务器的引入,在支持更高容量地保存先前生成HTML文件的基础上,还可以支持多设备接入的PDF转化,当不同设备有不同的转换需求时,可以同时满足;当所有接入设备同时处理一个任务时,又能提高整体的转换效率。
3)wkhtmltopdf是一个跨平台,支持多种编程语言的主流PDF转换工具。它支持URL直接转pdf和HTML文件转pdf两种方式,其中第二种方式可使整个系统更加灵活、高效,避免了直接使用wkhtmltopdf将URL转为PDF文件所带来的生成文件较慢和文件过大的问题。
但是,采用直接调用类似wkhtmltopdf的转换工具的方式进行PDF转换,在对某些具有特殊网页标签,如nav标签、aside标签、header标签、footer标签的网页进行转换会存在一定的网页排版错位问题。排版错位效果举例可参考图2和图3所示。
对于上述技术方案,从网页到PDF文件的过程中还需要经过PhantomJS处理再存入服务器生成HTML文件,虽然让wkhtmltopdf的缺点得到了一定的弥补,但该操作在流程上是比较冗余的。
对于现有方案2,根据PDF生成指令确定待处理网页页面和PDF文件页面高度,并确定待处理网页页面中的页面元素以及对应的元素高度,进而确定截图区域以获得待处理图片,最后根据待处理图片生成PDF文件。实现流程可参考图4所示。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京天融信网络安全技术有限公司;北京天融信科技有限公司;北京天融信软件有限公司,未经北京天融信网络安全技术有限公司;北京天融信科技有限公司;北京天融信软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211473789.3/2.html,转载请声明来源钻瓜专利网。