CN112650714B - 文档展示方法、装置、设备及计算机可读介质 - Google Patents
文档展示方法、装置、设备及计算机可读介质 Download PDFInfo
- Publication number
- CN112650714B CN112650714B CN202011528699.0A CN202011528699A CN112650714B CN 112650714 B CN112650714 B CN 112650714B CN 202011528699 A CN202011528699 A CN 202011528699A CN 112650714 B CN112650714 B CN 112650714B
- Authority
- CN
- China
- Prior art keywords
- document
- target
- content
- target document
- canvas
- 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
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000009877 rendering Methods 0.000 claims abstract description 48
- 238000006243 chemical reaction Methods 0.000 claims abstract description 8
- 238000000605 extraction Methods 0.000 claims abstract description 8
- 230000006870 function Effects 0.000 claims description 65
- 239000000463 material Substances 0.000 claims description 21
- 238000004891 communication Methods 0.000 claims description 18
- 238000007726 management method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013523 data management Methods 0.000 claims description 3
- 239000000969 carrier Substances 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 1
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly 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
- 238000002360 preparation method Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/168—Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/148—File search processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
- G06F16/156—Query results presentation
-
- 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]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Human Computer Interaction (AREA)
- Document Processing Apparatus (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种文档展示方法、装置、设备及计算机可读介质。该方法包括:在预览页面中创建承载目标文档的画布,目标文档为采用可移植文档格式的待展示文档;将目标文档转换为目标数据文件,目标数据文件包括利用内容标签从目标文档提取到的内容元素;将目标数据文件中的内容元素渲染至画布,通过画布在预览页面中展示目标文档,任一内容元素在画布中的位置与提取前在目标文档中的位置相同。本申请通过剥离操作系统和载体,利用文档转换的方法改变了默认打开PDF文件的方式,从而解决了无法多端、多载体统一PDF渲染方式的技术问题。
Description
技术领域
本申请涉及文本处理技术领域,尤其涉及一种文档展示方法、装置、设备及计算机可读介质。
背景技术
PDF(Portable Document Format的简称,意为“可携带文档格式”),是由AdobeSystems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式。PDF文件以PostScript语言图象模型为基础,无论在哪种打印机上都可保证精确的颜色和准确的打印效果,即PDF会忠实地再现原稿的每一个字符、颜色以及图象。
PDF文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。这一特点使它成为在Internet上进行电子文档发行和数字化信息传播的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件在开始使用PDF格式文件。
但是目前,相关技术中,无论是在哪一个操作系统都需要依靠搭载于自身系统上的PDF文件阅读器才能对PDF文件进行查看,并且不同操作系统的终端对小程序、网页及应用软件中打开PDF文件的渲染模式也不相同。
针对无法实现多端、多载体统一PDF渲染方式的问题,目前尚未提出有效的解决方案。
发明内容
本申请提供了一种文档展示方法、装置、设备及计算机可读介质,以解决无法实现多端、多载体统一PDF渲染方式的技术问题。
根据本申请实施例的一个方面,本申请提供了一种文档展示方法,包括:在预览页面中创建承载目标文档的画布,目标文档为采用可移植文档格式的待展示文档;将目标文档转换为目标数据文件,目标数据文件包括利用内容标签从目标文档提取到的内容元素;将目标数据文件中的内容元素渲染至画布,通过画布在预览页面中展示目标文档,任一内容元素在画布中的位置与提取前在目标文档中的位置相同。
根据本申请实施例的另一方面,本申请提供了一种文档展示装置,包括:画布创建模块,用于在预览页面中创建承载目标文档的画布,目标文档为采用可移植文档格式的待展示文档;文档转换模块,用于将目标文档转换为目标数据文件,目标数据文件包括利用内容标签从目标文档提取到的内容元素;文档渲染模块,用于将目标数据文件中的内容元素渲染至画布,通过画布在预览页面中展示目标文档,任一内容元素在画布中的位置与提取前在目标文档中的位置相同。
根据本申请实施例的另一方面,本申请提供了一种电子设备,包括存储器、处理器、通信接口及通信总线,存储器中存储有可在处理器上运行的计算机程序,存储器、处理器通过通信总线和通信接口进行通信,处理器执行计算机程序时实现上述方法。
根据本申请实施例的另一方面,本申请还提供了一种具有处理器可执行的非易失的程序代码的计算机可读介质,程序代码使处理器执行上述的方法。
本申请实施例提供的上述技术方案与相关技术相比具有如下优点:
本申请技术方案通过在预览页面创建承载可移植文档格式的目标文档的画布,并将对目标文档进行转换后得到的内容元素渲染至画布中,以通过画布在预览页面中展示目标文档,从而使方案剥离了操作系统及载体(小程序、网页、应用软件等)对可移植文档格式的目标文档的限制,从而解决了无法实现多端、多载体统一PDF渲染方式的技术问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为根据本申请实施例提供的一种可选的文档展示方法硬件环境示意图;
图2为根据本申请实施例提供的一种可选的文档展示方法流程图;
图3为根据本申请实施例提供的一种可选的素材管理系统界面示意图;
图4为根据本申请实施例提供的一种可选的文档展示装置框图;
图5为本申请实施例提供的一种可选的电子设备结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本申请的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
相关技术中,无论是在哪一个操作系统都需要依靠搭载于自身系统上的PDF文件阅读器才能对PDF文件进行查看,并且不同操作系统的终端对小程序、网页及应用软件中打开PDF文件的渲染模式也不相同。
为了解决背景技术中提及的问题,根据本申请实施例的一方面,提供了一种文档展示方法的实施例。本技术方案对能够适配小程序、 H5、移动端等PDF浏览场景,根据载体屏幕的大小动态调整PDF画面的大小,并且统一了安卓端、iOS端、Linux端及Windows端在网页、小程序、应用软件等载体对PDF的渲染模式,使用JavaScript对PDF 进行解析,将PDF的内容转化成二进制数据,然后利用JavaScript的 canvas(画布)功能,将其绘制渲染在页面上,完成统一的PDF渲染。
可选地,在本申请实施例中,上述文档展示方法可以应用于如图1 所示的由终端101和服务器103所构成的硬件环境中。如图1所示,服务器103通过网络与终端101进行连接,可用于为终端或终端上安装的客户端提供服务,可在服务器上或独立于服务器设置数据库105,用于为服务器103提供数据存储服务,上述网络包括但不限于:广域网、城域网或局域网,终端101包括但不限于PC、手机、平板电脑等。
本申请实施例中的一种文档展示方法可以由服务器103来执行,还可以是由服务器103和终端101共同执行,下面以服务器103来执行该文档展示方法为例进行说明,如图2所示,该方法可以包括以下步骤:
步骤S202,在预览页面中创建承载目标文档的画布,目标文档为采用可移植文档格式的待展示文档。
本申请实施例中,预览页面可以是小程序、网页及应用软件的显示界面中的其中一种。可移植文档格式(Portable Document Format) 即PDF文件,PDF文件格式与操作系统平台无关,也就是说,PDF文件不管是在Windows,Unix还是在苹果公司的Mac OS操作系统中都是通用的。预览页面不限搭载设备的操作系统,如Windows、Linux、 iOS、Android、Unix等。
本申请实施例中,可以在接收到PDF文件调用指令时在调用终端的浏览器、小程序、应用软件等载体的预览页面中利用创建画布。
本申请实施例中,为了剥离操作系统及本地阅读器对PDF文件的限制,本申请采用跨平台、即时编译型的高级编程语言JavaScript来进行PDF文件解析,JavaScript作为开发Web页面的脚本语言而出名,但是也能被用到很多非浏览器环境中,因此无论是什么操作系统的终端设备,也无论时小程序、网页等浏览载体,本申请均可以进行适配。为了展示PDF文件,需要利用Html5等前端语言和层叠样式表 (Cascading Style Sheets,CSS)创建画布(Canvas),以准备在画布上渲染所要展示的目标文档。
本申请实施例中,PDF文件的来源多种多样,为了适配PDF文件来源的多样化,本申请可以采取多种方式获取PDF文件。下面介绍几种优选的PDF获取方式。
方式一,对已经提供了具体的文档链接的,直接下载PDF文件。
步骤11,获取对目标文档的访问链接,访问链接提供访问目标文档的接口。
本申请实施例中,访问链接为配置对象设置的,配置对象为PDF 文件的创建对象、管理对象、保存对象等,调用对象通过访问链接提供的访问目标文档的接口获取该目标文档。
访问链接的形式可以如下所示:
https://resource.baoxian.com/docs/app/pdf_viewer.html?path=https%3A%2F%2Fresource.baoxian.com%2Ffront%2Fprd%2Fproduct%2Fcommo n%2Fcustomer_notice.pdf。有的特殊符号在URL(Uniform Resource Locator,统一资源定位符)中不能直接传递,需要采用这些特殊符号的ASCII码表示,如在上述链接中,%3A表示符号“:”,%2F表示符号“/”。当链接地址作为参数进行传递时,需要预先将“:”、“/”等特殊符号转换为ASCII码来传递,而在提取路径参数时,将path参数等号的所有参数作为路径参数,在将%3A转换为“:”、将%2F转换为“/”即可得到路径参数指示的链接。
步骤12,提取访问链接中的路径参数。
本申请实施例中,可以通过设置路径参数来表示PDF文件的路径。作为优选,可以设置path参数作为识别路径参数的触发参数,在识别到path参数时,提取path参数等号后的参数作为路径参数,在上述实施例中的路径参数为:
https%3A%2F%2Fresource.baoxian.com%2Ffront%2Fprd%2Fproduc t%2Fcommon%2Fcustomer_notice.pdf。
步骤13,根据路径参数确定目标文档的文档地址。
本申请实施例中,在识别到path参数时,提取path参数后面的链接,即可得到目标文档的文档地址,在上述访问链接中,可以通过路径参数得到访问地址为:
https://resource.baoxian.com/front/prd/product/common/customer_notice.pdf。
步骤14,从文档地址下载目标文档。
得到文档地址,即可直接下载该目标文档。
本申请实施例中,还可以从文档链接中的标题参数获取目标文档的文档名称,以上述链接为例,标题参数为customer_notice.pdf,对应可以获得的目标文档的文档名称为:customer_notice.pdf。若文档链接中不存在标题参数,则采用默认文档名称替代,如PDF文档。
然而,并非所有访问链接都能明确提供文档链接,因此对于没有提供文档链接的访问链接,本申请还可以采用以下方式来获取目标文档。
方式二,提取访问链接中的文档标识,以此来从预设的素材管理系统中查找是否存在目标文档。
即确定所述访问链接中的文档标识;将文档标识传输至素材获取接口,以通过与素材获取接口连接的素材管理系统提取与文档标识匹配的目标文档,素材管理系统为预设的对可移植文档格式的文档进行收集的数据管理系统。
本申请实施例中,素材管理系统通过统一的素材获取接口监听外部是否有文档标识传输进来,从而根据文档标识查找所对应的文档。上传至素材管理系统中保存的PDF文件都有一个唯一的标识,将该标识传输到素材获取接口,即可得到最新的PDF访问链接以及PDF的描述内容(PDF大小、PDF标题等基础属性)。素材管理系统的界面可以如图3所示,记录有文档的文档标识:CUSTOME_NOTICE,文档分类: COMMON,文档标题:客户告知书,备注:通用框架-客户告知书等。以图3所示为例,访问链接可以是:
https://static.baoxian.cn/app1/pdf_viewer/index.html?pdfKey=CUSTOMER_NOTICE。其中,pdfKey参数用于识别文档标识的触发参数,即识别到访问链接中存在pdfKey参数,则可以得到该参数后面的文档标识:CUSTOME_NOTICE。
方式三,还可以根据访问链接中的函数标识调用云函数,从而通过云函数获取目标文档的访问链接。
步骤21,确定访问链接中的函数标识,函数标识用于触发调用与函数标识关联的云函数。
本申请实施例中,携带函数标识的访问链接可以如下所示:
https://static.baoxian.cn/app1/pdf_viewer/index.html?f=getConfigPdfPath&b=%7B%22namespace%22%3A%22pdf_bucket%22...
本申请以f参数作为优选的函数标识,f为function的缩写,后续跟随的参数为调用的云函数的函数名。云函数提供了一种直接在云上运行,无状态的、短暂的、由事件触发的代码的能力,通过云函数可以将文档获取的逻辑从PDF渲染展示的方案中剥离,实现完全解耦,如此可以节省代码成本,也可以提升逻辑变动的灵活程度。
步骤22,提取与函数标识所关联的函数名。
本申请实施例中,访问链接中还预设有f参数和b参数,f参数用于触发识别云函数及调用操作,b参数用于携带传递给云函数的请求数据。以上述链接为例,在识别到f参数时,根据f=getConfigPdfPath确定所要调用的云函数的函数名为getConfigPdfPath,并且还可以根据参数b获得通过需要传递给云函数getConfigPdfPath的请求数据。
步骤23,调用函数名所指示的第一云函数,并通过第一云函数获取目标文档的文档链接。
在上述链接的例子中,第一云函数即为getConfigPdfPath函数,用于获取PDF文件的路径,同时在调用云函数getConfigPdfPath时,将参数b携带的请求数据传递给云函数getConfigPdfPath,以使云函数getConfigPdfPath通过自身的文件获取逻辑获取PDF文件的文档链接。
步骤24,通过所述文档链接下载所述目标文档。
可选地,还可以设置一个默认云函数来传递上述方式二中的文档标识,从而将PDF文件的获取逻辑收束到了云函数中,而不是请求特定的接口来获取PDF文件。
即将文档标识传递至第二云函数,以通过第二云函数获取具有文档标识的目标文档的文档链接;通过文档链接下载目标文档。
第二云函数即为默认云函数,默认云函数根据文档标识可以在素材管理系统中寻找目标文档,并返回文档链接,如此便可以通过文档链接下载PDF文件。
本申请实施例中,对于动态PDF链接,即PDF链接具有时效性的情况,利用f参数确定云函数调用,利用b参数向云函数传递PDF文件的请求数据,从而通过云函数可以将PDF文件的获取逻辑从文件调用方以及渲染方中抽离出来,实现完全解耦,既节省了代码成本也提升了逻辑变动的灵活程度。
可选地,还可以通过云函数直接下载PDF文件。
步骤S204,将目标文档转换为目标数据文件,其中,所述目标数据文件包括利用内容标签从所述目标文档提取到的内容元素。
本申请实施例中,可以利用JavaScript对目标文档进行解析,从而将目标文档转换为目标数据文件,目标数据文件可以是二进制数据文件。上述内容标签为按照PDF格式标准确定的文本标签、图片标签及表单标签等,利用内容标签可以对目标文档进行拆解,得到多个内容元素,利用所得到的内容元素生成上述目标数据文件。
可选地,将目标文档转换为目标数据文件可以包括以下步骤:
步骤31,识别目标文档的文件尾标识,文件尾标识为创建目标文档时生成的,文件尾标识用于指示文件尾区域所在的位置,文件尾区域用于保存各个内容元素的内容标签。
本申请实施例中,PDF文件主要由文件头、文件内容、交叉引用表及文件尾组成。
文件头用于表示该pdf文件遵循的pdf文件版本,例如1.3,1.7等。文件内容即为实际存储文件内容的部分,按object对象进行存储,每个object对象有一个编号,object对象即为内容元素,表示文字、图片、表单等,object对象的编号即为内容标签。交叉引用表中记录各个内容元素的偏移量,即在文档中的位置,文件尾存储了交叉引用表的位置信息、内容标签及其数量等信息。
利用JavaScript解析PDF文件时,识别文件尾标识,从而找到文件尾区域。
步骤32根据所述文件尾标识确定所述文件尾区域,并提取所述文件尾区域中保存的所述内容标签。
本申请实施例中,可以在文件尾区域中提取出当前文档的所有内容标签,例如,在识别到%%EOF标识时,定位到文件尾区域,从文件尾区域中识别到10-obj标识,则得到内容标签10-obj,识别到xref,则后续内容为交叉引用表,由此可以在交叉引用表中找到10-obj的内容元素在文件中的位置,从而提取出该10-obj的内容元素。
步骤33,按照内容标签从目标文档中提取内容元素,并利用提取的内容元素生成目标数据文件。
利用内容标签可以拆解出文档中所有的内容元素。
可选地,步骤33按照内容标签从目标文档中提取内容元素,并利用提取的内容元素生成目标数据文件又可以包括以下步骤:
步骤331,在目标文档的交叉引用表中确定内容标签所对应的目标偏移量,目标偏移量用于表示内容标签所对应的内容元素在目标文档中的位置。
本申请实施例中,从文件尾区域提取到内容元素之后,可以在交叉引用表中找到每个内容标签所对应的内容元素在文档中的位置。
步骤332,按照目标偏移量提取内容元素,并将内容元素转换为二进制数据。
在找到内容元素后,可以逐个提取出内容元素,并将内容元素转换为二进制数据,便于传输和计算机识别。
步骤333,利用所有内容元素转换得到的二进制数据生成目标数据文件。
最后将目标文档的所有内容元素转换为二进制数据后,生成二进制文件,即目标数据文件。
可选地,本申请还可以将内容元素以图片的形式提取出来,在将内容元素渲染至画布中时,可以直接粘贴图片。
步骤S206,将目标数据文件中的内容元素渲染至画布,通过画布在预览页面中展示目标文档,任一内容元素在画布中的位置与提取前在目标文档中的位置相同。
本申请实施例中,在将目标数据文件中的内容元素渲染至画布之前,本申请技术方案可以根据载体视窗的大小动态的调整PDF渲染的大小,即确定将内容元素渲染至画布上的渲染比例,具体方式可以是:
步骤41,获取预览页面的视窗宽度和目标文档的文档宽度;
步骤42,确定文档宽度与视窗宽度的宽度比值;
步骤43,将宽度比值乘以清晰度调节系数,得到渲染比例。
本申请实施例中,载体视窗可以是显示屏幕的整个界面,此时为全屏显示,可以是网页的显示界面、小程序的显示界面及应用软件的显示界面等,视窗宽度即为上述载体视窗(显示界面)的宽度。通过计算视窗宽度与目标文档的原始宽度之间的宽度比值可以初步确定渲染比例,当前的渲染比例可以应用在普通级别的分辨率的载体中,但是为了提高在高分辨率载体中的清晰度,本申请可以将上述直接求比值得到的渲染比例乘以清晰度调节系数,得到最佳的渲染比例,作为优选,上述清晰度调节系数可以是2,如此可以将渲染节点的宽度翻倍,从而提高在高分辨率载体中的清晰度。
在得到渲染比例之后,将目标数据文件中的内容元素渲染至画布可以具体包括以下步骤:
步骤51,利用目标数据文件中的二进制数据确定目标文档中的多个内容元素,并确定各个内容元素在目标文档中所对应的坐标位置。
本申请实施例中,在渲染前通过识别目标数据文件中的二进制数据逐个识别到内容元素和该内容元素在原始目标文档中的坐标位置。
步骤52,在画布中创建作用域对象,并确定各个内容元素按照渲染比例调整后在预览页面中的目标大小和目标坐标,作用域对象用于在画布中绘制目标文档的内容元素。
步骤53,利用作用域对象将各个内容元素按照所对应的目标大小和目标坐标绘制在所述画布中。
本申请实施例中,JavaScript在预览页面中通过寻找canvas标签找到画布,并在画布中创建context对象,即作用域对象,该作用域对象可以理解为画笔,用于在画布中绘制内容元素。绘制之前,将识别到的各个内容元素根据渲染比例确定在画布上的目标位置和目标大小,从而利用作用域对象依次将每个内容元素按照该目标位置和目标大小绘制在画布中。
可选的,本申请实施例中,可以设置默认字体库,用于在遇到特殊字体而无法渲染至画布中时,采用默认字体库中的默认字体进行渲染,从而不影响用户的阅读体验。
根据本申请实施例的又一方面,如图4所示,提供了一种文档展示装置,包括:
画布创建模块401,用于在预览页面中创建承载目标文档的画布,目标文档为采用可移植文档格式的待展示文档;
文档转换模块403,用于将目标文档转换为目标数据文件,目标数据文件包括利用内容标签从目标文档提取到的内容元素;
文档渲染模块405,用于将目标数据文件中的内容元素渲染至画布,通过画布在预览页面中展示目标文档,任一内容元素在画布中的位置与提取前在目标文档中的位置相同。
需要说明的是,该实施例中的画布创建模块401可以用于执行本申请实施例中的步骤S202,该实施例中的文档转换模块403可以用于执行本申请实施例中的步骤S204,该实施例中的文档渲染模块405可以用于执行本申请实施例中的步骤S206。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。
可选地,该文档转换模块具体用于:识别目标文档的文件尾标识,文件尾标识为创建目标文档时生成的,文件尾标识用于指示文件尾区域所在的位置,文件尾区域用于保存各个内容元素的内容标签;根据文件尾标识确定文件尾区域,并提取文件尾区域中保存的内容标签;按照内容标签从目标文档中提取内容元素,并利用提取的内容元素生成目标数据文件。
可选地,该文档转换模块还用于:在目标文档的交叉引用表中确定内容标签所对应的目标偏移量,目标偏移量用于表示内容标签所对应的内容元素在目标文档中的位置;按照目标偏移量提取内容元素,并将内容元素转换为二进制数据;利用所有内容元素转换得到的二进制数据生成目标数据文件。
可选地,该文档展示装置还包括文档获取模块,用于:获取对目标文档的访问链接,访问链接提供访问目标文档的接口;提取访问链接中的路径参数;根据路径参数确定目标文档的文档地址;从文档地址下载目标文档。
可选地,文档获取模块还用于:确定访问链接中的文档标识;将文档标识传输至素材获取接口,以通过与素材获取接口连接的素材管理系统提取与文档标识匹配的目标文档,素材管理系统为预设的对可移植文档格式的文档进行收集的数据管理系统;
确定访问链接中的函数标识,函数标识用于触发调用与函数标识关联的云函数;提取与函数标识所关联的函数名;调用函数名所指示的第一云函数,并通过第一云函数获取目标文档的文档链接;通过文档链接下载目标文档。
可选地,文档获取模块还用于:将文档标识传递至第二云函数,以通过第二云函数获取具有文档标识的文档链接;通过文档链接下载目标文档。
可选地,该文档展示装置还包括比例确定模块,用于:获取预览页面的视窗宽度和目标文档的文档宽度;确定文档宽度与视窗宽度的宽度比值;将宽度比值乘以清晰度调节系数,得到渲染比例。
可选地,该文档渲染模块,具体用于:利用目标数据文件中的二进制数据确定目标文档中的多个内容元素,并确定各个内容元素在目标文档中所对应的坐标位置;在画布中创建作用域对象,并确定各个内容元素按照渲染比例调整后在预览页面中的目标大小和目标坐标,作用域对象用于在画布中绘制目标文档的内容元素;利用作用域对象将各个内容元素按照所对应的目标大小和目标坐标绘制在画布中。
根据本申请实施例的另一方面,本申请提供了一种电子设备,如图5所示,包括存储器501、处理器503、通信接口505及通信总线507,存储器501中存储有可在处理器503上运行的计算机程序,存储器501、处理器503通过通信接口505和通信总线507进行通信,处理器503 执行计算机程序时实现上述方法的步骤。
上述电子设备中的存储器、处理器通过通信总线和通信接口进行通信。所述通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。
存储器可以包括随机存取存储器(Random Access Memory,简称 RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP) 等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
根据本申请实施例的又一方面还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一实施例的步骤。
可选地,在本申请实施例中,计算机程序产品或计算机程序用于处理器执行以下步骤的程序代码:
在预览页面中创建承载目标文档的画布,目标文档为采用可移植文档格式的待展示文档;
将目标文档转换为目标数据文件,目标数据文件包括利用内容标签从目标文档提取到的内容元素;
将目标数据文件中的内容元素渲染至画布,通过画布在预览页面中展示目标文档,任一内容元素在画布中的位置与提取前在目标文档中的位置相同。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本申请实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits, ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array, FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的单元来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种文档展示方法,其特征在于,包括:
在预览页面中创建承载目标文档的画布,其中,所述目标文档为采用可移植文档格式的待展示文档;
将所述目标文档转换为目标数据文件,其中,所述目标数据文件包括利用内容标签从所述目标文档提取到的内容元素;
将所述目标数据文件中的所述内容元素渲染至所述画布,通过所述画布在所述预览页面中展示所述目标文档,其中,任一内容元素在所述画布中的位置与提取前在所述目标文档中的位置相同;
所述将所述目标文档转换为目标数据文件包括:识别所述目标文档的文件尾标识,其中,所述文件尾标识为创建所述目标文档时生成的,所述文件尾标识用于指示文件尾区域所在的位置,所述文件尾区域用于保存各个所述内容元素的所述内容标签;根据所述文件尾标识确定所述文件尾区域,并提取所述文件尾区域中保存的所述内容标签;按照所述内容标签从所述目标文档中提取所述内容元素,并利用提取的所述内容元素生成所述目标数据文件。
2.根据权利要求1所述的方法,其特征在于,按照所述内容标签从所述目标文档中提取所述内容元素,并利用提取的所述内容元素生成所述目标数据文件包括:
在所述目标文档的交叉引用表中确定所述内容标签所对应的目标偏移量,其中,所述目标偏移量用于表示所述内容标签所对应的所述内容元素在所述目标文档中的位置;
按照所述目标偏移量提取所述内容元素,并将所述内容元素转换为二进制数据;
利用所有所述内容元素转换得到的所述二进制数据生成所述目标数据文件。
3.根据权利要求1所述的方法,其特征在于,在预览页面中创建承载目标文档的画布之前,所述方法还包括按照如下方式获取目标文档:
获取对所述目标文档的访问链接,其中,所述访问链接提供访问所述目标文档的接口;
提取所述访问链接中的路径参数;
根据所述路径参数确定所述目标文档的文档地址;
从所述文档地址下载所述目标文档。
4.根据权利要求3所述的方法,其特征在于,获取目标文档还包括以下方式中的至少一种:
确定所述访问链接中的文档标识;将所述文档标识传输至素材获取接口,以通过与所述素材获取接口连接的素材管理系统提取与所述文档标识匹配的所述目标文档,其中,所述素材管理系统为预设的对所述可移植文档格式的文档进行收集的数据管理系统;
确定所述访问链接中的函数标识,其中,所述函数标识用于触发调用与所述函数标识关联的云函数;提取与所述函数标识所关联的函数名;调用所述函数名所指示的第一云函数,并通过所述第一云函数获取所述目标文档的文档链接;通过所述文档链接下载所述目标文档。
5.根据权利要求4所述的方法,其特征在于,在提取到所述访问链接中的文档标识后,所述方法还包括:
将所述文档标识传递至第二云函数,以通过所述第二云函数获取具有所述文档标识的所述文档链接;
通过所述文档链接下载所述目标文档。
6.根据权利要求1至5任一所述的方法,其特征在于,将所述目标数据文件中的所述内容元素渲染至所述画布之前,所述方法还包括按照如下方式确定将所述内容元素渲染至所述画布上的渲染比例:
获取所述预览页面的视窗宽度和所述目标文档的文档宽度;
确定所述文档宽度与所述视窗宽度的宽度比值;
将所述宽度比值乘以清晰度调节系数,得到所述渲染比例。
7.根据权利要求6所述的方法,其特征在于,将所述目标数据文件中的所述内容元素渲染至所述画布包括:
利用所述目标数据文件中的二进制数据确定所述目标文档中的多个所述内容元素,并确定各个所述内容元素在所述目标文档中所对应的坐标位置;
在所述画布中创建作用域对象,并确定各个所述内容元素按照所述渲染比例调整后在所述预览页面中的目标大小和目标坐标,其中,所述作用域对象用于在所述画布中绘制所述目标文档的所述内容元素;
利用所述作用域对象将各个所述内容元素按照所对应的所述目标大小和所述目标坐标绘制在所述画布中。
8.一种文档展示装置,其特征在于,包括:
画布创建模块,用于在预览页面中创建承载目标文档的画布,其中,所述目标文档为采用可移植文档格式的待展示文档;
文档转换模块,用于将所述目标文档转换为目标数据文件,其中,所述目标数据文件包括利用内容标签从所述目标文档提取到的内容元素;
文档渲染模块,用于将所述目标数据中的所述内容元素渲染至所述画布,通过所述画布在所述预览页面中展示所述目标文档,其中,任一内容元素在所述画布中的位置与提取前在所述目标文档中的位置相同;
所述文档转换模块,具体用于:识别所述目标文档的文件尾标识,其中,所述文件尾标识为创建所述目标文档时生成的,所述文件尾标识用于指示文件尾区域所在的位置,所述文件尾区域用于保存各个所述内容元素的所述内容标签;根据所述文件尾标识确定所述文件尾区域,并提取所述文件尾区域中保存的所述内容标签;按照所述内容标签从所述目标文档中提取所述内容元素,并利用提取的所述内容元素生成所述目标数据文件。
9.一种电子设备,包括存储器、处理器、通信接口及通信总线,所述存储器中存储有可在所述处理器上运行的计算机程序,所述存储器、所述处理器通过所述通信总线和所述通信接口进行通信,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1至7任一项所述的方法。
10.一种具有处理器可执行的非易失的程序代码的计算机可读介质,其特征在于,所述程序代码使所述处理器执行所述权利要求1至7任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011528699.0A CN112650714B (zh) | 2020-12-22 | 2020-12-22 | 文档展示方法、装置、设备及计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011528699.0A CN112650714B (zh) | 2020-12-22 | 2020-12-22 | 文档展示方法、装置、设备及计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112650714A CN112650714A (zh) | 2021-04-13 |
CN112650714B true CN112650714B (zh) | 2024-04-05 |
Family
ID=75359113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011528699.0A Active CN112650714B (zh) | 2020-12-22 | 2020-12-22 | 文档展示方法、装置、设备及计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112650714B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113515917A (zh) * | 2021-04-19 | 2021-10-19 | 北京明略昭辉科技有限公司 | 文件信息管理方法、系统、电子设备及存储介质 |
CN113435847A (zh) * | 2021-06-30 | 2021-09-24 | 珠海金山办公软件有限公司 | 一种信息展示方法、装置、电子设备以及存储介质 |
CN116151191B (zh) * | 2023-04-18 | 2023-06-16 | 武汉精臣智慧标识科技有限公司 | 一种数据渲染方法、系统、电子设备及存储介质 |
CN116340271B (zh) * | 2023-05-26 | 2023-11-03 | 福昕鲲鹏(北京)信息科技有限公司 | 开放版式文档的打开方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631964A (zh) * | 2013-12-18 | 2014-03-12 | 重庆市科学技术研究院 | 一种内嵌pdf的html文件混排方法 |
CN108509504A (zh) * | 2018-03-02 | 2018-09-07 | 广州视源电子科技股份有限公司 | 文档在线预览方法、装置、设备、客户端及存储介质 |
CN110019037A (zh) * | 2018-03-29 | 2019-07-16 | 中国平安财产保险股份有限公司 | 一种pdf文件展示方法、装置、设备及存储介质 |
CN111144078A (zh) * | 2019-12-13 | 2020-05-12 | 平安银行股份有限公司 | Pdf文件中待标注位置确定方法、装置、服务器及存储介质 |
CN111581555A (zh) * | 2020-04-27 | 2020-08-25 | 北京字节跳动网络技术有限公司 | 一种文档加载方法、装置、设备及存储介质 |
CN111897776A (zh) * | 2020-06-22 | 2020-11-06 | 百望股份有限公司 | 一种ofd文档的处理方法、电子设备及计算机可读存储介质 |
WO2020232872A1 (zh) * | 2019-05-22 | 2020-11-26 | 平安科技(深圳)有限公司 | 表格识别方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7917848B2 (en) * | 2006-06-14 | 2011-03-29 | Family Learn LLC | Online publishing tools |
-
2020
- 2020-12-22 CN CN202011528699.0A patent/CN112650714B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103631964A (zh) * | 2013-12-18 | 2014-03-12 | 重庆市科学技术研究院 | 一种内嵌pdf的html文件混排方法 |
CN108509504A (zh) * | 2018-03-02 | 2018-09-07 | 广州视源电子科技股份有限公司 | 文档在线预览方法、装置、设备、客户端及存储介质 |
CN110019037A (zh) * | 2018-03-29 | 2019-07-16 | 中国平安财产保险股份有限公司 | 一种pdf文件展示方法、装置、设备及存储介质 |
WO2020232872A1 (zh) * | 2019-05-22 | 2020-11-26 | 平安科技(深圳)有限公司 | 表格识别方法、装置、计算机设备和存储介质 |
CN111144078A (zh) * | 2019-12-13 | 2020-05-12 | 平安银行股份有限公司 | Pdf文件中待标注位置确定方法、装置、服务器及存储介质 |
CN111581555A (zh) * | 2020-04-27 | 2020-08-25 | 北京字节跳动网络技术有限公司 | 一种文档加载方法、装置、设备及存储介质 |
CN111897776A (zh) * | 2020-06-22 | 2020-11-06 | 百望股份有限公司 | 一种ofd文档的处理方法、电子设备及计算机可读存储介质 |
Non-Patent Citations (2)
Title |
---|
基于Qt渲染的OFD文档格式转换;冯辉;段伟光;丛培勇;王卫国;;信息技术与标准化(第04期);25-34 * |
科技文档对象在标签PDF中的表示研究;刘平;廖兆存;于俊清;;计算机工程与设计;20070708(13);第3198-3200页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112650714A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112650714B (zh) | 文档展示方法、装置、设备及计算机可读介质 | |
CN107153716B (zh) | 网页内容提取方法和装置 | |
CN108334508B (zh) | 网页信息的提取方法和装置 | |
CN107798001B (zh) | 网页处理方法、装置及设备 | |
CN113382083A (zh) | 一种网页截图方法和装置 | |
CN108885544B (zh) | 前端页面国际化处理方法、应用服务器及计算机可读存储介质 | |
CN110895481A (zh) | 桌面应用的渲染方法、装置和系统 | |
CN114417226A (zh) | 页面生成方法、显示方法、装置、电子设备和存储介质 | |
CN110968314A (zh) | 一种页面生成方法及装置 | |
CN104899212A (zh) | 网页展示方法、服务器及系统 | |
CN115526160A (zh) | 富文本处理方法、装置、设备及存储介质 | |
CN113360106B (zh) | 一种网页打印方法和装置 | |
CN110955855B (zh) | 一种信息拦截的方法、装置及终端 | |
CN110750958A (zh) | 一种文本显示方法、装置、电子设备及介质 | |
CN111460348B (zh) | 文件处理的方法和装置 | |
CN113656737A (zh) | 网页内容展示方法、装置、电子设备以及存储介质 | |
CN109614592B (zh) | 文本的处理方法、装置、存储介质和电子设备 | |
CN111680247A (zh) | 网页字符串的本地调用方法、装置、设备及存储介质 | |
CN112947900A (zh) | web应用开发方法、装置、服务器及开发终端 | |
KR101692482B1 (ko) | 모바일 단말기의 광고방법, 그 방법을 위한 모바일 단말기 및 프로그램 분배 서버 | |
CN115904167A (zh) | 网页图标的处理方法、装置、存储介质及电子设备 | |
CN107656935B (zh) | 网页展示方法和装置 | |
CN113297425B (zh) | 文档转换方法、装置、服务器及存储介质 | |
CN115759029A (zh) | 文档模板处理方法、装置、电子设备及存储介质 | |
KR20190098810A (ko) | 인터랙티브 메시지 서비스 방법 및 이를 수행하는 서버 장치 |
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 |