CN112765110B - 一种pdf批注数据生成方法、装置、设备及存储介质 - Google Patents
一种pdf批注数据生成方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112765110B CN112765110B CN202110091280.1A CN202110091280A CN112765110B CN 112765110 B CN112765110 B CN 112765110B CN 202110091280 A CN202110091280 A CN 202110091280A CN 112765110 B CN112765110 B CN 112765110B
- Authority
- CN
- China
- Prior art keywords
- annotation
- instruction stream
- drawing instruction
- compressed
- 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.)
- Active
Links
Images
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/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
Abstract
本申请实施例公开了一种PDF批注数据生成方法、装置、设备及存储介质。本申请实施例提供的技术方案通过根据初始的批注对象数据确定批注元数据和形状绘制指令流,预先对形状绘制指令流进行压缩得到压缩绘制指令流并进行缓存,在接收到对PDF文件的保存指令时,从缓存文件中获取压缩绘制指令流,并将批注元数据和压缩绘制指令流进行拼接得到完整的批注对象数据并保存到PDF文件中,有效减少对内存的占用,以及缩短了在PDF文件保存过程中进行数据压缩所需要的时间,有效优化用户体验。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种PDF批注数据生成方法、装置、设备及存储介质。
背景技术
PDF(Portable DocumentFormat,可携带文档格式),是一种以独立于应用程序、硬件、操作系统的方式呈现文档的文件格式。同时PDF文件支持批注,能够对原始文档添加高亮批注、手写批注等,这些批注数据被保存在PDF文件内部,会跟着PDF文件移动,起到批注信息保存和交换作用。
由于PDF批注数据的使用频率和强度较高,会产生大量需要保存的批注数据,导致批注数据的保存时间较长,不利于用户体验。
发明内容
本申请实施例提供一种PDF批注数据生成方法、装置、设备及存储介质,以减少批注数据的保存时间,优化用户体验。
在第一方面,本申请实施例提供了一种PDF批注数据生成方法,包括:
基于针对PDF文件的初始的批注对象数据确定批注元数据和形状绘制指令流;
对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中;
响应于对所述PDF文件的保存指令,从所述缓存文件中读取所述压缩绘制指令流;
将所述批注元数据和所述压缩绘制指令流拼接为完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
进一步的,所述基于针对PDF文件的初始的批注对象数据确定批注元数据和形状绘制指令流,包括:
实时检测针对PDF文件进行的手写批注操作,确定所述手写批注操作对应的初始的批注对象数据;
依据所述批注对象数据确定所述手写批注操作所对应的批注元数据和形状绘制指令流。
进一步的,所述将所述压缩绘制指令流保存至缓存文件中之前,还包括:
确定所述压缩绘制指令流对应的所述批注元数据,并确定在缓存文件中是否存在与所述批注元数据对应的指令缓存链表;
若否,则在所述缓存文件中创建对应于所述批注元数据的指令缓存链表,用于保存所述批注元数据对应的所述压缩绘制指令流。
进一步的,所述对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中,包括:
实时获取所述形状绘制指令流,并对所述形状绘制指令流进行压缩得到压缩绘制指令流;
根据对应的所述批注元数据,将所述压缩绘制指令流保存至缓存文件对应的指令缓存链表中。
进一步的,所述将所述批注元数据和所述压缩绘制指令流拼接为完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中,包括:
确定所述压缩绘制指令流所对应的所述批注元数据,并将对应于同一所述批注元数据的所述压缩绘制指令流进行整合;
将所述压缩绘制指令流和对应的所述批注元数据进行拼接得到完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
进一步的,所述将所述压缩绘制指令流保存至缓存文件中之后,还包括:
响应于对PDF文件的批注删除操作,从所述缓存文件中删除所述批注删除操作对应的所述压缩绘制指令流。
进一步的,所述响应于对PDF文件的批注删除操作,从所述缓存文件中删除所述批注删除操作对应的所述压缩绘制指令流,包括:
响应于针对PDF文件的批注删除操作,确定所述批注删除操作对应的所述压缩绘制指令流;
从所述缓存文件中确定所述批注删除操作对应的所述压缩绘制指令流,并将所述压缩绘制指令流从所述缓存文件中删除。
在第二方面,本申请实施例提供了一种PDF批注数据生成装置,包括批注检测模块、压缩缓存模块、保存响应模块和拼接保存模块,其中:
所述批注检测模块,用于基于针对PDF文件的初始的批注对象数据确定批注元数据和形状绘制指令流;
所述压缩缓存模块,用于对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中;
所述保存响应模块,用于响应于对所述PDF文件的保存指令,从所述缓存文件中读取所述压缩绘制指令流;
所述拼接保存模块,用于将所述批注元数据和所述压缩绘制指令流拼接为完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
进一步的,所述批注检测模块具体用于:
实时检测针对PDF文件进行的手写批注操作,确定所述手写批注操作对应的批注对象数据;
依据所述批注对象数据确定所述手写批注操作所对应的批注元数据和形状绘制指令流。
进一步的,所述压缩缓存模块在将所述压缩绘制指令流保存至缓存文件中之前,还包括:
确定所述压缩绘制指令流对应的所述批注元数据,并确定在缓存文件中是否存在与所述批注元数据对应的指令缓存链表;
若否,则在所述缓存文件中创建对应于所述批注元数据的指令缓存链表,用于保存所述批注元数据对应的所述压缩绘制指令流。
进一步的,所述压缩缓存模块在对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中时,具体包括:
实时获取所述形状绘制指令流,并对所述形状绘制指令流进行压缩得到压缩绘制指令流;
根据对应的所述批注元数据,将所述压缩绘制指令流保存至缓存文件对应的指令缓存链表中。
进一步的,所述拼接保存模块具体用于:
确定所述压缩绘制指令流所对应的所述批注元数据,并将对应于同一所述批注元数据的所述压缩绘制指令流进行整合;
将所述压缩绘制指令流和对应的所述批注元数据进行拼接得到完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
进一步的,所述装置还包括删除响应模块,所述删除响应模块用于:
响应于对PDF文件的批注删除操作,从所述缓存文件中删除所述批注删除操作对应的所述压缩绘制指令流。
进一步的,所述删除响应模块具体用于:
响应于针对PDF文件的批注删除操作,确定所述批注删除操作对应的所述压缩绘制指令流;
从所述缓存文件中确定所述批注删除操作对应的所述压缩绘制指令流,并将所述压缩绘制指令流从所述缓存文件中删除。
在第三方面,本申请实施例提供了一种PDF批注数据生成设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的PDF批注数据生成方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的PDF批注数据生成方法。
本申请实施例通过根据初始的批注对象数据确定批注元数据和形状绘制指令流,预先对形状绘制指令流进行压缩得到压缩绘制指令流并进行缓存,在接收到对PDF文件的保存指令时,从缓存文件中获取压缩绘制指令流,并将批注元数据和压缩绘制指令流进行拼接得到完整的批注对象数据并保存到PDF文件中,有效减少对内存的占用,以及缩短了在PDF文件保存过程中进行数据压缩所需要的时间,有效优化用户体验。
附图说明
图1是本申请实施例提供的一种PDF批注数据生成方法的流程图;
图2是本申请实施例提供的另一种PDF批注数据生成方法的流程图;
图3是本申请实施例提供的一种PDF批注数据生成装置的结构示意图;
图4是本申请实施例提供的一种PDF批注数据生成设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1给出了本申请实施例提供的一种PDF批注数据生成方法的流程图,本申请实施例提供的PDF批注数据生成方法可以由PDF批注数据生成装置来执行,该PDF批注数据生成装置可以通过硬件和/或软件的方式实现,并集成在PDF批注数据生成设备中。
下述以PDF批注数据生成装置执行PDF批注数据生成方法为例进行描述。参考图1,该PDF批注数据生成方法包括:
S101:基于针对PDF文件的初始的批注对象数据确定批注元数据和形状绘制指令流。
其中,批注对象数据基于对PDF文件的手写批注操作进行检测生成。例如在打开PDF文件后,在批注模式下对在PDF文件上进行的手写批注操作进行检测,并生成相应的初始的批注对象数据。
示例性的,在检测到针对PDF文件的初始的批注对象数据后,基于这些初始的批注对象数据确定批注元数据和形状绘制指令流。其中批注元数据用于记录批注类型、批注作者、批注形状的颜色、透明度、形状线条的宽度等批注格式参数,形状绘制指令流用于记录手写批注操作所对应的批注形状信息,根据批注元数据和形状绘制指令流可确定在PDF文件上进行手写批注操作所对应的批注形状。
可以理解的是,PDF文件由各种不同类型的对象数据组合而成,其中包含用户批注输入转换成的批注对象数据,在一个初始的批注对象数据中,其包含了批注元数据和形状绘制指令流,并分别通过对应的标识字符进行标识,在生成初始的批注对象数据后,根据对应的标识字符即可确定形状绘制指令流中记录的批注元数据和形状绘制指令流。
S102:对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中。
示例性的,在确定初始的批注对象数据中的批注元数据和形状绘制指令流后,提取该批注对象数据中的形状绘制指令流,并对提取到的形状绘制指令流进行压缩得到压缩绘制指令流。
进一步的,将压缩得到的压缩绘制指令流保存在缓存文件中。可以理解的是,在缓存文件中保存有从打开PDF文件直至目前或者是从上一次保存PDF文件直至目前所生成的压缩绘制指令流。而在上一次保存PDF文件之前缓存在缓存文件中的压缩绘制指令流,在成功保存PDF文件后即被从缓存文件中删除。
本实施例提供的缓存文件可以在打开PDF文件的时候或在进入PDF文件的批注模式的时候临时生成,或者是预先设定一个用于缓存压缩绘制指令流的缓存文件,本申请不做限定。
S103:响应于对所述PDF文件的保存指令,从所述缓存文件中读取所述压缩绘制指令流。
其中,针对PDF文件的保存指令可以通过对PDF文件的保存控制按钮或保存快捷方式进行触发。在触发对PDF文件的保存指令后,会对PDF文件内容进行保存,同时,需要对手写批注操作对应的初始的批注对象数据反映的信息进行保存,并且需要对初始的批注对象数据进行压缩后再进行保存。
在本申请实施例中,预先对初始的批注对象数据中的形状绘制指令流进行压缩得到压缩绘制指令流,并保存在缓存文件中。
示例性的,在检测到对PDF文件的保存指令后,将缓存文件中保存的压缩绘制指令流读取出来,用于后续的与批注元数据的拼接。
S104:将所述批注元数据和所述压缩绘制指令流拼接为完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
示例性的,在读取出缓存文件中的压缩绘制指令流后,将对应的批注元数据和压缩绘制指令流进行拼接,得到完整的批注对象数据。可以理解的是,拼接得到的完整的批注对象数据与原先初始的批注对象数据的数据结构对应或一致。其中一个完整的批注对象数据包括批注元数据(又称批注字典数据)和压缩绘制指令流(压缩绘制指令流包括一个或多个压缩绘制指令)。可以理解的是,绘制指令流可以进行压缩或者不压缩,为了减少PDF文件的保存体积,可选择进行无损压缩处理,并且压缩后的绘制指令流和未压缩的绘制指令流保持一致。
进一步的,在得到拼接后的完整的批注对象数据后,将完整的批注对象数据保存到PDF文件中。在后续打开该PDF文件并显示文档批注时,基于PDF文件中保存的批注对象数据可在PDF文件的显示界面上绘制显示出先前手写批注操作对应的批注形状。
可以理解的是,对于一个批注对象数据,其中批注元数据相对形状绘制指令流所占用的内存空间较小,在保存PDF文件时所主要占用内存空间的是形状绘制指令流,并且保存PDF文件时主要耗费的时间是对形状绘制指令流的保存时间。在现有技术中,一般是在需要保存PDF文件的时候再对批注对象数据进行保存,而在手写批注操作对应的绘制点较多时,批注对象数据中的形状绘制指令流的数据量较大,其对内存空间的占用较大,并且对其进行压缩和保存所耗费的时间也较长。
本申请实施例通过在生成初始的批注对象数据时,提前对形状绘制指令流进行压缩得到并缓存压缩绘制指令流,在后续保存PDF文件时再从缓存文件读取已经压缩好的压缩绘制指令流,与对应批注元数据拼接为完整的批注对象数据,有效减少在PDF文件保存过程中对批注相关数据的压缩保存时间和所占用的内存空间。
上述,通过根据初始的批注对象数据确定批注元数据和形状绘制指令流,预先对形状绘制指令流进行压缩得到压缩绘制指令流并进行缓存,在接收到对PDF文件的保存指令时,从缓存文件中获取压缩绘制指令流,并将批注元数据和压缩绘制指令流进行拼接得到完整的批注对象数据并保存到PDF文件中,有效减少对内存的占用,以及缩短了在PDF文件保存过程中进行数据压缩所需要的时间,有效优化用户体验。
在上述实施例的基础上,图2给出了本申请实施例提供的另一种PDF批注数据生成方法的流程图,该PDF批注数据生成方法是对上述PDF批注数据生成方法的具体化。参考图2,该PDF批注数据生成方法包括:
S201:实时检测针对PDF文件进行的手写批注操作,确定所述手写批注操作对应的初始的批注对象数据。
其中,手写批注操作可以是在对PDF文件的批准模式下通过手写笔操作、手指操作或鼠标操作进行,基于在批注模式下设置的批注类型、批注作者、批注形状的颜色、透明度、形状线条的宽度等确定批注元数据,并通过检测手写批注操作对应的报点数据确定形状绘制指令流,并基于批注元数据和形状绘制指令流生成初始的批注对象数据。
具体的,实时检测针对PDF文件进行的手写批注操作,确定手写批注操作对应的批注元数据以及形状绘制指令流,并基于批注元数据和形状绘制指令流生成初始的批注对象数据,并且初始的批注对象数据中的批注元数据和形状绘制指令流分别通过设定的标注符号进行标注。
例如,对于一个批注对象数据obj,分别通过“<<...>>”和“stream...endstream”来标识批注元数据(也叫批注字典数据)和形状绘制指令流(一个形状绘制指令流可包含一个或多个形状绘制指令),即在“<<”和“>>”中间记录的数据为批注元数据,在“stream”和“endstream”中间记录的数据为形状绘制指令流。
S202:依据所述批注对象数据确定所述手写批注操作所对应的批注元数据和形状绘制指令流。
具体的,在得到初始的批注对象数据后,根据对应的标识字符确定初始的批注对象数据中记录的手写批注操作所对应的批注元数据和形状绘制指令流。例如,确定初始的批注对象数据obj中的“<<...>>”和“stream...endstream”所对应的位置,并确定在“<<”和“>>”中间记录的数据为批注元数据,在“stream”和“endstream”中间记录的数据为形状绘制指令流。
S203:判断在缓存文件中是否存在与所述批注元数据对应的指令缓存链表。若是,则跳转至步骤S205,否则,跳转至步骤S204。
本申请实施例提供的指令缓存链表与批注元数据相对应,即在缓存文件中保存有对应于不同的批注元数据的一个或多个指令缓存链表,其中指令缓存链表用于保存相应批注元数据所对应的压缩绘制指令流。
可以理解的是,在基于相同的批注格式参数进行手写批注操作时,产生的形状绘制指令流对应于相同的批注元数据,则压缩得到的压缩绘制指令流对应于相同的批注元数据。而在进行手写批注操作过程中,对批注格式参数进行了修改,此时产生的形状绘制指令流将对应于新的批注元数据,并且压缩得到的压缩绘制指令流对应于新的批注元数据。
具体的,在确定手写批注操作所对应的批注元数据和形状绘制指令流后,确定压缩绘制指令流对应的批注元数据,并确定在缓存文件中是否存在与上述批注元数据对应的指令缓存链表。若在缓存文件中查找到与上述批注元数据对应的指令缓存链表,则跳转至步骤S205,若未在缓存文件中查找到与上述批注元数据对应的指令缓存链表,则跳转至步骤S204。
S204:在所述缓存文件中创建对应于所述批注元数据的指令缓存链表,用于保存所述批注元数据对应的所述压缩绘制指令流。
若在缓存文件中未存在与批注元数据对应的指令缓存链表,则根据对应的批注元数据在缓存文件中创建对应的指令缓存链表。在一个可能的实施例中,可在一次手写批注操作中依据不同的批注元数据生成指令缓存链表,还可以是在每次更新批注格式时重新生成对应的指令缓存链表。
S205:实时获取所述形状绘制指令流,并对所述形状绘制指令流进行压缩得到压缩绘制指令流。
具体的,在基于手写批注操作实时生成对应的初始的批注对象数据的过程中,实时从这些批注对象数据中获取形状绘制指令流,并对形状绘制指令流进行压缩得到压缩绘制指令流。
S206:根据对应的所述批注元数据,将所述压缩绘制指令流保存至缓存文件对应的指令缓存链表中。
具体的,在压缩得到压缩绘制指令流后,根据对应的批注元数据,在缓存文件中确定用于保存该压缩绘制指令流的指令缓存链表,并将该压缩绘制指令流保存至指令缓存链表中。
在一个可能的实施例中,在将压缩绘制指令流保存至缓存文件中之后,对批注删除操作进行检测,若未检测到批注删除操作,则返回至步骤S201继续检测手写批注操作,而在检测到批注删除操作时,响应于对PDF文件的批注删除操作,从所述缓存文件中删除所述批注删除操作对应的所述压缩绘制指令流。在成功删除压缩绘制指令流后,返回至步骤S201继续检测手写批注操作。若检测到对PDF文件的保存指令,则跳转至步骤S207。
具体的,本实施例提供的响应于对PDF文件的批注删除操作,从所述缓存文件中删除所述批注删除操作对应的所述压缩绘制指令流,具体包括步骤S2061-S2062:
S2061:响应于针对PDF文件的批注删除操作,确定所述批注删除操作对应的所述压缩绘制指令流。
S2062:从所述缓存文件中确定所述批注删除操作对应的所述压缩绘制指令流,并将所述压缩绘制指令流从所述缓存文件中删除。
具体的,在检测到针对PDF文件的批注删除操作时,若批注删除操作删除的是当前未保存的批注,则确定该批注删除操作所对应的压缩绘制指令流,并在缓存文件中确定保存该压缩绘制指令流的指令缓存链表,并将该压缩绘制指令流从指令缓存链表中删除,从而将该压缩绘制指令流从缓存文件中删除。
在一个可能的实施例中,在从指令缓存链表中删除压缩绘制指令流后,判断该指令缓存链表中是否还记录有压缩绘制指令流,若该指令缓存链表中的压缩绘制指令流均被删除,则从缓存文件中删除该指令缓存链表。可以理解的是,若批注删除操作删除的是先前已保存的批注,则直接从PDF文件中删除相应的批注对象数据。
S207:响应于对所述PDF文件的保存指令,从所述缓存文件中读取所述压缩绘制指令流。
S208:将所述批注元数据和所述压缩绘制指令流拼接为完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
在一个可能的实施例中,在将所述批注元数据和所述压缩绘制指令流拼接为完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中时,可先对压缩绘制指令流进行整合,减少生成的批注对象数据所占用的内存空间,具体包括步骤S2081-S2082:
S2081:确定所述压缩绘制指令流所对应的所述批注元数据,并将对应于同一所述批注元数据的所述压缩绘制指令流进行整合。
S2082:将所述压缩绘制指令流和对应的所述批注元数据进行拼接得到完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
具体的,在读取出缓存文件中保存的压缩绘制指令流后,确定这些压缩绘制指令流所对应的批注元数据,并对这些批注元数据进行比对匹配,确定相同的批注元数据,并将对应于相同批注元数据的压缩绘制指令流进行整合。
进一步的,将压缩绘制指令流和对应的批注元数据进行拼接得到完整的批注对象数据,并将得到的完整的批注对象数据保存到PDF文件中。可以理解的是,一个完整的批注对象数据对应一个批注元数据和一个压缩绘制指令流,压缩绘制指令流中可包含多条绘制指令流,在打开PDF文件时,将依据该批注元数据和对应的多个压缩绘制指令流绘制显示出多个基于相同批注格式参数的批注形状。
示例性的,对于每个批注元数据,利用对应的标识字符区分批注元数据和压缩绘制指令流,例如分别通过“<<...>>”和“stream...endstream”来标识批注元数据和压缩绘制指令流,则在完整的批注对象数据中“<<”和“>>”中间记录的数据为批注元数据,假设压缩绘制指令流在缓存文件中记录为“DATA”,则在“stream”和“endstream”中间记录的数据为压缩绘制指令流,例如“stream DATA endstream”。
上述,通过根据初始的批注对象数据确定批注元数据和形状绘制指令流,预先对形状绘制指令流进行压缩得到压缩绘制指令流并进行缓存,在接收到对PDF文件的保存指令时,从缓存文件中获取压缩绘制指令流,并将批注元数据和压缩绘制指令流进行拼接得到完整的批注对象数据并保存到PDF文件中,有效减少对内存的占用,以及缩短了在PDF文件保存过程中进行数据压缩所需要的时间,有效优化用户体验。同时,响应于批注删除操作从缓存文件中删除对应压缩绘制指令流,减少PDF文件中误保存已删除的批注形状的情况,并且在对压缩绘制指令流和对应的批注元数据进行拼接前,先将对应于同一批注元数据的压缩绘制指令流进行整合,有效减少批注对象数据所占用的内存空间。
图3给出了本申请实施例提供的一种PDF批注数据生成装置的结构示意图。参考图3,该PDF批注数据生成装置包括批注检测模块31、压缩缓存模块32、保存响应模块33和拼接保存模块34。
其中,所述批注检测模块31,用于基于针对PDF文件的初始的批注对象数据确定批注元数据和形状绘制指令流;所述压缩缓存模块32,用于对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中;所述保存响应模块33,用于响应于对所述PDF文件的保存指令,从所述缓存文件中读取所述压缩绘制指令流;所述拼接保存模块34,用于将所述批注元数据和所述压缩绘制指令流拼接为完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
上述,通过根据初始的批注对象数据确定批注元数据和形状绘制指令流,预先对形状绘制指令流进行压缩得到压缩绘制指令流并进行缓存,在接收到对PDF文件的保存指令时,从缓存文件中获取压缩绘制指令流,并将批注元数据和压缩绘制指令流进行拼接得到完整的批注对象数据并保存到PDF文件中,有效减少对内存的占用,以及缩短了在PDF文件保存过程中进行数据压缩所需要的时间,有效优化用户体验。
在一个可能的实施例中,所述批注检测模块31具体用于:
实时检测针对PDF文件进行的手写批注操作,确定所述手写批注操作对应的初始的批注对象数据;
依据所述批注对象数据确定所述手写批注操作所对应的批注元数据和形状绘制指令流。
在一个可能的实施例中,所述压缩缓存模块32在将所述压缩绘制指令流保存至缓存文件中之前,还包括:
确定所述压缩绘制指令流对应的所述批注元数据,并确定在缓存文件中是否存在与所述批注元数据对应的指令缓存链表;
若否,则在所述缓存文件中创建对应于所述批注元数据的指令缓存链表,用于保存所述批注元数据对应的所述压缩绘制指令流。
在一个可能的实施例中,所述压缩缓存模块32在对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中时,具体包括:
实时获取所述形状绘制指令流,并对所述形状绘制指令流进行压缩得到压缩绘制指令流;
根据对应的所述批注元数据,将所述压缩绘制指令流保存至缓存文件对应的指令缓存链表中。
在一个可能的实施例中,所述拼接保存模块34具体用于:
确定所述压缩绘制指令流所对应的所述批注元数据,并将对应于同一所述批注元数据的所述压缩绘制指令流进行整合;
将所述压缩绘制指令流和对应的所述批注元数据进行拼接得到完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
在一个可能的实施例中,所述装置还包括删除响应模块,所述删除响应模块用于:
响应于对PDF文件的批注删除操作,从所述缓存文件中删除所述批注删除操作对应的所述压缩绘制指令流。
在一个可能的实施例中,所述删除响应模块具体用于:
响应于针对PDF文件的批注删除操作,确定所述批注删除操作对应的所述压缩绘制指令流;
从所述缓存文件中确定所述批注删除操作对应的所述压缩绘制指令流,并将所述压缩绘制指令流从所述缓存文件中删除。
本申请实施例还提供了一种PDF批注数据生成设备,该PDF批注数据生成设备可集成本申请实施例提供的PDF批注数据生成装置。图4是本申请实施例提供的一种PDF批注数据生成设备的结构示意图。参考图4,该PDF批注数据生成设备包括:输入装置43、输出装置44、存储器42以及一个或多个处理器41;所述存储器42,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器41执行,使得所述一个或多个处理器41实现如上述实施例提供的PDF批注数据生成方法。其中输入装置43、输出装置44、存储器42和处理器41可以通过总线或者其他方式连接,图4中以通过总线连接为例。
存储器42作为一种计算设备可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的PDF批注数据生成方法对应的程序指令/模块(例如,PDF批注数据生成装置中的批注检测模块31、压缩缓存模块32、保存响应模块33和拼接保存模块34)。存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器42可进一步包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
处理器41通过运行存储在存储器42中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的PDF批注数据生成方法。
上述提供的PDF批注数据生成装置、设备和计算机可用于执行上述任意实施例提供的PDF批注数据生成方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的PDF批注数据生成方法,该PDF批注数据生成方法包括:基于针对PDF文件的初始的批注对象数据确定批注元数据和形状绘制指令流;对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中;响应于对所述PDF文件的保存指令,从所述缓存文件中读取所述压缩绘制指令流;将所述批注元数据和所述压缩绘制指令流拼接为完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的PDF批注数据生成方法,还可以执行本申请任意实施例所提供的PDF批注数据生成方法中的相关操作。
上述实施例中提供的PDF批注数据生成装置、设备及存储介质可执行本申请任意实施例所提供的PDF批注数据生成方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的PDF批注数据生成方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。
Claims (9)
1.一种PDF批注数据生成方法,其特征在于,包括:
基于针对PDF文件的初始的批注对象数据确定批注元数据和形状绘制指令流;
对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中;
响应于对所述PDF文件的保存指令,从所述缓存文件中读取所述压缩绘制指令流;
确定所述压缩绘制指令流所对应的所述批注元数据,并将对应于同一所述批注元数据的所述压缩绘制指令流进行整合;将所述压缩绘制指令流和对应的所述批注元数据进行拼接得到完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
2.根据权利要求1所述的PDF批注数据生成方法,其特征在于,所述基于针对PDF文件的初始的批注对象数据确定批注元数据和形状绘制指令流,包括:
实时检测针对PDF文件进行的手写批注操作,确定所述手写批注操作对应的初始的批注对象数据;
依据所述批注对象数据确定所述手写批注操作所对应的批注元数据和形状绘制指令流。
3.根据权利要求1所述的PDF批注数据生成方法,其特征在于,所述将所述压缩绘制指令流保存至缓存文件中之前,还包括:
确定所述压缩绘制指令流对应的所述批注元数据,并确定在缓存文件中是否存在与所述批注元数据对应的指令缓存链表;
若否,则在所述缓存文件中创建对应于所述批注元数据的指令缓存链表,用于保存所述批注元数据对应的所述压缩绘制指令流。
4.根据权利要求3所述的PDF批注数据生成方法,其特征在于,所述对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中,包括:
实时获取所述形状绘制指令流,并对所述形状绘制指令流进行压缩得到压缩绘制指令流;
根据对应的所述批注元数据,将所述压缩绘制指令流保存至缓存文件对应的指令缓存链表中。
5.根据权利要求1所述的PDF批注数据生成方法,其特征在于,所述将所述压缩绘制指令流保存至缓存文件中之后,还包括:
响应于对PDF文件的批注删除操作,从所述缓存文件中删除所述批注删除操作对应的所述压缩绘制指令流。
6.根据权利要求5所述的PDF批注数据生成方法,其特征在于,所述响应于对PDF文件的批注删除操作,从所述缓存文件中删除所述批注删除操作对应的所述压缩绘制指令流,包括:
响应于针对PDF文件的批注删除操作,确定所述批注删除操作对应的所述压缩绘制指令流;
从所述缓存文件中确定所述批注删除操作对应的所述压缩绘制指令流,并将所述压缩绘制指令流从所述缓存文件中删除。
7.一种PDF批注数据生成装置,其特征在于,包括批注检测模块、压缩缓存模块、保存响应模块和拼接保存模块,其中:
所述批注检测模块,用于基于针对PDF文件的初始的批注对象数据确定批注元数据和形状绘制指令流;
所述压缩缓存模块,用于对所述形状绘制指令流进行压缩得到压缩绘制指令流,并将所述压缩绘制指令流保存至缓存文件中;
所述保存响应模块,用于响应于对所述PDF文件的保存指令,从所述缓存文件中读取所述压缩绘制指令流;
所述拼接保存模块,用于确定所述压缩绘制指令流所对应的所述批注元数据,并将对应于同一所述批注元数据的所述压缩绘制指令流进行整合;将所述压缩绘制指令流和对应的所述批注元数据进行拼接得到完整的批注对象数据,并将所述批注对象数据保存到所述PDF文件中。
8.一种PDF批注数据生成设备,其特征在于,包括:存储器以及一个或多个处理器;所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6任一所述的PDF批注数据生成方法。
9.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-6任一所述的PDF批注数据生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110091280.1A CN112765110B (zh) | 2021-01-22 | 2021-01-22 | 一种pdf批注数据生成方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110091280.1A CN112765110B (zh) | 2021-01-22 | 2021-01-22 | 一种pdf批注数据生成方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112765110A CN112765110A (zh) | 2021-05-07 |
CN112765110B true CN112765110B (zh) | 2022-01-14 |
Family
ID=75706778
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110091280.1A Active CN112765110B (zh) | 2021-01-22 | 2021-01-22 | 一种pdf批注数据生成方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112765110B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113343636B (zh) * | 2021-06-02 | 2023-11-03 | 北京百度网讯科技有限公司 | 一种设置标注线宽度的方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599321A (zh) * | 2016-12-30 | 2017-04-26 | 上海绿建信息科技有限公司 | 一种dwg文件批注和签名的生成、解析插件及其使用方法 |
CN107797971A (zh) * | 2017-10-11 | 2018-03-13 | 广州视源电子科技股份有限公司 | 文档批注方法、装置和电子设备 |
CN108038094A (zh) * | 2017-10-17 | 2018-05-15 | 广州视源电子科技股份有限公司 | 一种文档批注方法、装置和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6883162B2 (en) * | 2001-06-06 | 2005-04-19 | Sun Microsystems, Inc. | Annotations for transaction tracing |
-
2021
- 2021-01-22 CN CN202110091280.1A patent/CN112765110B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599321A (zh) * | 2016-12-30 | 2017-04-26 | 上海绿建信息科技有限公司 | 一种dwg文件批注和签名的生成、解析插件及其使用方法 |
CN107797971A (zh) * | 2017-10-11 | 2018-03-13 | 广州视源电子科技股份有限公司 | 文档批注方法、装置和电子设备 |
CN108038094A (zh) * | 2017-10-17 | 2018-05-15 | 广州视源电子科技股份有限公司 | 一种文档批注方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112765110A (zh) | 2021-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003349B2 (en) | Actionable content displayed on a touch screen | |
RU2683174C2 (ru) | Преобразование чернил в текстовое представление | |
US20080229192A1 (en) | Interactive image tagging | |
CN109471851B (zh) | 数据处理方法、装置、服务器和存储介质 | |
US20080229186A1 (en) | Persisting digital ink annotations as image metadata | |
CN112765110B (zh) | 一种pdf批注数据生成方法、装置、设备及存储介质 | |
CN105426049A (zh) | 一种删除方法及终端 | |
TW201435585A (zh) | 用以存取資料之電子裝置及其資料存取方法 | |
US20110035667A1 (en) | Instant Import of Media Files | |
CN113282239A (zh) | 数据迁移方法、存储器及控制器 | |
CN105528334A (zh) | 一种文档操作处理的方法以及终端 | |
CN109542357B (zh) | 一种命令参数组装方法、系统、设备及计算机存储介质 | |
WO2017131994A1 (en) | Smart annotation of content on computing devices | |
CN107515720B (zh) | 一种消息处理方法、介质、装置和计算设备 | |
CN115495020A (zh) | 文件处理方法、装置、电子设备和可读存储介质 | |
US20140380194A1 (en) | Contents sharing service | |
CN114036431A (zh) | 页面缓存跳转方法、装置、电子设备及存储介质 | |
CN110286940B (zh) | 智能电视日志生成方法 | |
CN107741992B (zh) | 会议记录的网络存储方法、装置、智能平板和存储介质 | |
WO2022236973A1 (zh) | 数据回填方法、装置、电子设备及存储介质 | |
CN111581921B (zh) | 一种文本编辑的方法、装置、计算机存储介质及终端 | |
CN114065727A (zh) | 资讯去重方法、设备及计算机可读介质 | |
CN115878851A (zh) | 一种编辑xml文件的方法、装置、电子设备及存储介质 | |
CN113378525A (zh) | Pdf文档段落呈现方法、装置、存储介质及设备 | |
CN114371832A (zh) | 基于语义分析的业务代码生成方法、装置和存储介质 |
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 |