一种电子文档的生成方法、装置和客户端的制作方法

文档序号:6499770阅读:358来源:国知局
一种电子文档的生成方法、装置和客户端的制作方法
【专利摘要】本发明提供了一种电子文档的生成方法、装置和客户端,其中方法包括:S1、服务器获取并存储母书源代码;S2、将所述母书源代码进行排版生成不支持版面重排格式的子书,并存储子书的排版信息;S3、将所述子书发送给与所述子书的排版相适应的子书客户端。解决了不同终端屏幕的显示问题,同时保证了版权保护的安全问题。更进一步地,能够实现子书客户端与母书源代码所在服务器之间的交互功能,即服务器如果接收到所述子书客户端的交互请求,依据所述排版信息将所述交互请求对应的执行结果返回给所述子书客户端。
【专利说明】一种电子文档的生成方法、装置和客户端
【【技术领域】】
[0001]本发明涉及计算机应用【技术领域】,特别涉及一种电子文档的生成方法、装置和客户端。
【【背景技术】】
[0002]随着计算机技术的不断发展和日益普及,传统出版行业也在向电子出版转换。目前主流的电子书格式主要分为两类:一类不支持格式和版面重排,以PDF为代表,另一类支持格式和版面的重排,以epub为代表。目前诸如epub等虽然可以根据阅读器的分辨率大小进行重新排版,但防止盗版的安全性较差,另外失去了页码的概念,在此基础上的交互就很难实现。PDF格式无法支持格式和版面重排,但因其能够跨平台、支持特长文件、支持多媒体信息的集成等优点,特别是安全可靠性高的优点而被目前有版权保护需求的网络出版方广泛采用。
[0003]现有网 络出版方目前大多采用直接将出版的内容排版成PDF格式提供给服务器,然后该TOF的文档供所有客户端进行下载。这种方式的核心是为了防止盗版,但现有的这种方式仍无法自动排版适应屏幕大小,例如4寸屏幕和10寸屏幕在PDF的显示上存在较大差异,对于10寸屏幕上能够显示的PDF文档,则在4寸屏幕上需要人工来回移动才能够正常显示。并且这种方式也失去了电子出版最重要的特点一交互功能,即在此基础上也无法实现复制、检索和编辑等功能。

【发明内容】

[0004]有鉴于此,本发明提供了一种电子文档的生成方法、装置和客户端,能够在保证安全性的基础上适应终端屏幕的显示。
[0005]具体技术方案如下:
[0006]一种电子文档的生成方法,该方法包括:
[0007]S1、服务器获取并存储母书源代码;
[0008]S2、将所述母书源代码进行排版生成不支持版面重排格式的子书,并存储子书的排版信息;
[0009]S3、将所述子书发送给与所述子书的排版相适应的子书客户端。
[0010]根据本发明一优选实施例,在所述步骤S3之后还包括:
[0011]S4、如果接收到所述子书客户端的交互请求,依据所述排版信息将所述交互请求对应的执行结果返回给所述子书客户端。
[0012]根据本发明一优选实施例,所述步骤SI具体包括:
[0013]服务器获取版权方提供的指定格式的母书源代码;或者,
[0014]服务器获取搜索引擎将搜索结果进行聚合并转换成指定格式的母书源代码。
[0015]根据本发明一优选实施例,所述指定格式包括以下结构化文本格式:BDF、HTML、XML或带标记的txt格式。[0016]根据本发明一优选实施例,所述不支持版面重排格式包括:PDF或XPS。
[0017]根据本发明一优选实施例,所述步骤S2包括以下两种形式中的一种或组合:
[0018]形式一、预先依据常用终端屏幕类型将所述母书源代码进行排版,分别生成与所述常用终端屏幕类型相适应的子书;
[0019]形式二、响应子书客户端的阅读请求,将所述母书源代码依据所述子书客户端所在终端的屏幕类型进行排版。
[0020]根据本发明一优选实施例,如果所述母书源代码发生版本更新,则针对更新后版本的母书源代码重新进行排版生成新版本的子书,将新版本的子书发送给所述子书客户端;或者,
[0021]如果所述母书源代码未发生版本更新但存在内容更新,则依据子书的排版信息确定更新的内容在子书中对应的位置,更新子书中相应的内容,并将子书中更新的内容发送给所述子书客户端。
[0022]根据本发明一优选实施例,依据所述排版信息将交互请求对应的执行结果返回给所述子书客户端包括:
[0023]S41、所述服务器依据所述排版信息确定所述交互请求所针对的子书内容在母书源代码中的位置;
[0024]S42、所述服务器依据步骤S41确定出的位置,对母书源代码执行所述交互请求包含的动作类型对应的处理;
[0025]S43、将执行结果返回给所述子书客户端。
[0026]根据本发明一优选实施例,当所述交互请求包含的动作类型为检索时,所述步骤S42为:所述服务器确定所述步骤S41确定出的位置对应的文本,在母书源代码中检索所述文本出现的位置,依据所述排版信息将检索到的位置转换成子书的位置作为执行结果;
[0027]当所述交互请求包含的动作类型为复制时,所述步骤S42为:所述服务器确定所述步骤S41确定出的位置对应的文本,将确定的文本发送至所述子书客户端供存储至剪切板;
[0028]当所述交互请求包含的动作类型为编辑时,所述步骤S42为:所述服务器确定所述步骤S41确定出的位置对应的文本,按照所述交互请求包含的编辑内容对确定的文本进行编辑,将编辑结果作为执行结果。
[0029]根据本发明一优选实施例,所述步骤S3具体为:
[0030]接收到子书客户端的阅读请求时,确定与该子书客户端相适应的排版类型,将该排版类型的子书中所述子书客户端所请求的内容发送所述子书客户端。
[0031 ] 根据本发明一优选实施例,所述服务器记录并限制子书客户端连续请求的内容数量;或者,
[0032]所述服务器记录并限制子书客户端请求内容的时间间隔;或者,
[0033]所述服务器记录并限制子书客户端请求的内容总数量。
[0034]一种电子文档的生成装置,该装置设置在服务器端,该装置包括:
[0035]母书获取单元,用于获取并存储母书源代码;
[0036]排版存储单元,用于将所述母书源代码进行排版生成不支持版面重排格式的子书,并存储子书的排版信息;[0037]子书交互单元,用于将所述子书发送给与所述子书的排版相适应的子书客户端。
[0038]根据本发明一优选实施例,该装置还包括:交互执行单元;
[0039]所述子书交互单元,还用于接收所述子书客户端的交互请求,将所述交互执行单元的执行结果返回给所述子书客户端;
[0040]所述交互执行单元,用于依据所述排版信息执行所述交互请求。
[0041]根据本发明一优选实施例,所述母书获取单元获取版权方提供的指定格式的母书源代码;或者,获取搜索引擎将搜索结果进行聚合并转换成指定格式的母书源代码。
[0042]根据本发明一优选实施例,所述指定格式包括以下结构化文本格式:BDF、HTML、XML或带标记的txt格式。
[0043]根据本发明一优选实施例,所述不支持版面重排格式包括:PDF或XPS。
[0044]根据本发明一优选实施例,所述排版存储单元在进行排版时采用以下两种形式中的一种或组合:
[0045]形式一、预先依据常用终端屏幕类型将所述母书源代码进行排版,分别生成与所述常用终端屏幕类型相适应的子书;
[0046]形式二、响应子书客户端的阅读请求,将所述母书源代码依据所述子书客户端所在终端的屏幕类型进行排版。
[0047]根据本发明一优选实施例,如果所述母书源代码发生版本更新,则所述排版存储单元针对更新后版本的母书源代码重新进行排版生成新版本的子书,所述子书交互单元将新版本的子书发送给所述子书客户端;或者,
[0048]如果所述母书源代码未发生版本更新但存在内容更新,则所述排版存储单元依据子书的排版信息确定更新的内容在子书中对应的位置,更新子书中相应的内容,所述子书交互单元将子书中更新的内容发送给所述子书客户端。
[0049]根据本发明一优选实施例,所述交互执行单元具体依据所述排版信息确定所述交互请求所针对的子书内容在母书源代码中的位置,再依据确定出的位置,对母书源代码执行所述交互请求包含的动作类型对应的处理。
[0050]根据本发明一优选实施例,当所述交互请求包含的动作类型为检索时,所述交互执行单元确定所述确定出的位置对应的文本,在母书源代码中检索所述文本出现的位置,依据所述排版信息将检索到的位置转换成子书的位置作为执行结果;
[0051]当所述交互请求包含的动作类型为复制时,所述交互执行单元确定所述确定出的位置对应的文本,将确定的文本发送至所述子书客户端供存储至剪切板;
[0052]当所述交互请求包含的动作类型为编辑时,所述交互执行单元确定所述确定出的位置对应的文本,按照所述交互请求包含的编辑内容对确定的文本进行编辑,将编辑结果作为执行结果。
[0053]根据本发明一优选实施例,所述子书交互单元接收到子书客户端的阅读请求时,确定与该子书客户端相适应的排版类型,将该排版类型的子书中所述子书客户端所请求的内容发送给所述子书客户端。
[0054]根据本发明一优选实施例,该装置还包括:访问控制单元,用于记录并限制子书客户端连续请求的内容数量,或者,记录并限制子书客户端请求内容的时间间隔,或者,所述服务器记录并限制子书客户端请求的内容总数量。[0055]一种子书客户端,该子书客户端包括:
[0056]阅读请求单元,用于向服务器发送阅读请求;
[0057]子书接收单元,用于接收所述服务器发送来的与所述子书客户端相适应排版的子书,所述子书是对所述阅读请求所请求的母书源代码进行排版后生成的不支持版面重排格式的子书。
[0058]根据本发明一优选实施例,该子书客户端还包括:
[0059]交互请求单元,用于所述服务器发送交互请求;
[0060]结果接收单元,用于接收所述服务器发送来执行结果,所述执行结果是所述服务器依据所述母书源代码排版成所述子书的排版信息得到的。
[0061]根据本发明一优选实施例,当所述交互请求包括的动作类型为检索时,所述执行结果为该子书客户端请求检索的文本在母书源代码中出现的位置;
[0062]当所述交互请求包括的动作类型为复制时,所述执行结果为该子书客户端请求复制的文本,所述结果接收单元还用于将接收到的执行结果存储至剪切板;
[0063]当所述交互请求包含的动作类型为编辑时,所述执行结果为该子书客户端请求编辑的结果。
[0064]由以上技术方案可以看出,本发明在服务器端存储母书源代码并对母书源代码排版生成不支持版面重排格式的子书,通过这种母书源代码作为原始格式,适应于不同终端屏幕的子书作为目标格式,解决了不同终端屏幕的显示问题,另外子书的不支持版面重排格式同时保证了版权保护的安全问题。
【【专利附图】

【附图说明】】
[0065]图1为本发明实施例一提供的电子文档的生成方法流程图;
[0066]图2为本发明实施例二提供的电子文档的生成装置结构图;
[0067]图3为本发明实施例三提供的子书客户端的结构图。
【【具体实施方式】】
[0068]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0069]在本发明中将原来服务器端存储单一目标格式的方式转换为在服务器采用母子书的方式,即存储母书源代码,并将母书源代码进行排版生成子书的方式,该子书一方面采用不支持版面重排格式,另一方面适应于不同类型的终端屏幕。下面通过实施例一对本发明提供的方法进行详细描述。
[0070]实施例一、
[0071]图1为本发明实施例一提供的电子文档的生成方法流程图,本发明实施例中涉及的服务器可以是普通的电子书服务器,也可以是云计算环境中的云端服务器。如图1所示,该方法包括以下步骤: [0072]步骤101:服务器获取并存储母书源代码。
[0073]在本步骤中母书源代码的获取可以采用但不限于以下方式:
[0074]方式一、版权方向服务器提供指定格式的母书源代码,例如作者或者出版社等版权方按照指定的格式来提供文档,该指定的格式可以是BDF、HTML、XML或带标记的txt格式等结构化文本格式。
[0075]方式二、搜索引擎将搜索结果进行聚合并转换成指定格式的母书源代码后提供给服务器。即搜索引擎从搜索结果中提取结果化信息来形成指定格式的电子书,该电子书即母书源代码。同样,该指定的格式可以是BDF、HTML、XML或带标记的txt格式等结构化文本格式。
[0076]在此母书源代码具有一个唯一的编号,本发明并不对具体的编号算法进行限定,可以采用任意编号算法,只要保证唯一性和安全性即可,例如编号算法可以是对文档内容做安全散列算法,提取前12个字符作为编号。
[0077]另外在存储母书源代码时,可以针对各母书源代码生成指纹,一方面用于内容去重,另一方面也可以用于快速反抄袭。
[0078]步骤102:将母书源代码进行排版生成不支持版面重排格式的子书,并存储子书的排版信息。
[0079]在本步骤中,对母书源代码进行排版可以是针对常用的终端屏幕类型分别执行的,即针对主流的终端屏幕类型将母书源代码进行排版,分别生成与这些主流终端屏幕类型相适应的子书。例如,目前常用的终端屏幕是4寸和10寸,这些终端屏幕上搭载的子书客户端(即电子书阅读器)通常也是适应于4寸和10寸的,则在服务器端针对4寸和10寸的终端屏幕类型分别对母书源代码进行排版,分别生成与4寸终端屏幕类型相适应的子书以及与10寸终端屏幕类型相适应的子书。这里终端屏幕类型可以是屏幕尺寸、屏幕分辨率等,在进行排版时还可以进一步结合不同字号生成不同的子书。虽然同一母书源代码对应适应于不同终端屏幕类型的子书,但母书源代码的编号以及书名是唯一的,这样能够方便实现下面步骤中阅读请求和交互请求的响应。
[0080]除了上述方式之外,还可以是基于请求触发的对母书源代码进行排版。即当接收到子书客户端针对某母书源代码的阅读请求时,如果当前还没有存储与该子书客户端相适应排版(即该子书客户端所在终端屏幕类型相适应)的子书,则依据该子书客户端所在终端屏幕类型对母书源代码进行排版,生成与该子书客户端相适应排版的子书;如果当前已经存储有与该子书客户端相适应排版的子书,则不用再针对该子书客户端生成子书。
[0081]当然,也可以采用上述两种方式相结合的方式,例如针对常用的终端屏幕类型对母书源代码进行排版,分别生成与这些常用的终端屏幕类型相适应的子书;而针对不常用的终端屏幕类型,在接收到这类型子书客户端的阅读请求时再触发对母书源代码进行排版,生成与该子书客户端所在终端屏幕类型相适应的子书。
[0082]本发明实施例采用的排版技术可以是基于xelatex排版技术,也可以是方正排版,或者adobe公司的indesign排版技术,等等。
[0083]对于生成的子书,为了保证版权保护的安全性,采用不支持版面重排格式,优选PDF格式,PDF格式具有与所有系统兼容、所见即所得以及防篡改等特性,只要具有类似特性的格式均可采用,例如XPS格式也可以采用。
[0084]为了保证排版的正确性,可以对排版结果进行审核,可以人工进行审核,也可以采用诸如xelatex排版系统的版面布局报警功能,如果输出的版面布局报警数量超过预设阈值(例如8个),则认为审核失败。如果审核失败,说明排版得到的子书不合格,会给用户带来较差的阅读体验,因此可以在调整母书源代码后重新进行排版。
[0085]步骤103:将子书发送给与子书的排版相适应的子书客户端。
[0086]在发送子书时,可以采用主动推送的方式,例如基于订阅的方式主动推送。优选地,也可以基于子书客户端的阅读请求来发送与该子书客户端相适应排版的子书,具体过程如下:
[0087]子书客户端向服务器发送阅读请求,该阅读请求中包含子书客户端所请求的内容和子书客户端信息。子书客户端所请求的内容可以包括:请求的电子书信息,依据该电子书信息服务器可以确定出对应的子书,还可以包括请求的页码,通常对于电子书的阅读请求是基于页码的,服务器从对应子书中查找请求的页码,并将该页码的内容发送给子书客户端。当然也可以基于整本电子书,服务器将对应子书整个发送给子书客户端。另外,由于阅读请求中包含子书客户端信息,服务器能够确定与该子书客户端信息相适应的排版类型,从而发送该排版类型中子书客户端请求的子书内容。
[0088]本发明中的子书和其他APP —样,都会存在更新的问题,如果母书源代码发生重大变化往往会引起版本更新,这种情况下,会针对更新后版本的母书源代码重新进行排版生成新版本的子书,将新版本的子书发送给之前请求过该子书的子书客户端。
[0089]如果母书源代码发生了内容更新但并未引起版本更新,例如仅仅是某些错别字的修改,或者是添加新页或者删除某页等,则可以依据子书的排版信息确定更新的内容在子书中对应的位置,然后仅需更新子书中相应的内容,而不必重新进行排版,再将子书中更新的内容发送给子书客户端即可。这种情况下,发送给子书客户端的内容仅仅涉及更新的内容,通常仅在页级别的,这就大大节省了子书客户端的流量损耗。
[0090]基于上述母子书的机制,可以在母书源代码嵌入推广信息,这样在各子书客户端上的子书上也能够协同显示该推广信息,并且上述的更新机制,也能够保证推广信息能够得到及时地更新。
[0091]在发送子书给子书客户端时,可以将生成的不支持版面重排格式的子书(例如TOF格式的子书)发送给子书客户端,这种情况适用于版权保护要求不那么高的情况,PDF格式的内容可以编辑复制。如果要求较高的版权保护等级,则可以将生成的不支持版面重排格式的子书转换成一页一页的图片,例如将PDF格式转换成PNG或DJVU等格式的图片,然后发送给子书客户端。
[0092]在本步骤中,为了保证安全和版权保护,子书客户端只有在用户登录的情况下才能够获取到子书,即服务器只针对登录状态的子书客户端的阅读请求进行响应,并发送子书给该子书客户端。在此基础上可以附加一些限制策略,例如可以包括但不限于以下策略:
[0093]策略1、服务器记录并限制子书客户端连续请求的内容数量,例如当某子书客户端请求子书的连续页码数超过了设定值,就拒绝响应该子书客户端的阅读请求。
[0094]策略2、服务器记录并限制子书客户端请求内容的时间间隔,例如当某子书客户端快速频繁地发送阅读请求,如果发送阅读请求的时间间隔小于预设的阈值,则拒绝响应该子书客户端的阅读请求。
[0095]策略3、服务器记录并限制子书客户端请求的内容总数量,例如当某子书客户端本次登录请求的子书内容总页数超过了设定值,就拒绝响应该子书客户端的阅读请求。[0096]上述策略都是为了防止恶意用户获取大量内容或者频繁获取内容用于盗版,阅读请求中包含有用户id,在服务器的记录和上述策略的实现均是基于用户id实现的。上述策略仅是本发明实施例列举的几种,还可以采用其他本领域人员能够想到的防止恶意用户的策略,在此不再一一穷举。
[0097]另外,还可以基于用户id,在发送给子书客户端的子书上打上具有用户标识的水印,这样可以用于后续盗版途径的追溯。
[0098]由于在服务器端已经存储了母书源代码至子书的排版信息,该排版信息可以认为是逆向引用语法文件,通过该排版信息可以从子书重新回到母书源代码。该排版信息记录子书所有内容(包括文字、图片、超链接等)在母书源代码中对应的位置,服务器根据该排版信息就可以获知子书中内容在母书源代码中对应的位置。基于该排版信息就能够实现电子书的交互功能,例如通过子书客户端实现编辑、复制、检索等功能。该交互功能体现在步骤104。
[0099]步骤104:服务器如果接收到子书客户端的交互请求,依据排版信息将该交互请求对应的执行结果返回给子书客户端。
[0100]具体地,服务器首先会接收到子书客户端的交互请求。子书客户端发送交互请求是由用户动作触发的,例如当用户有复制需求、检索需求或者编辑需求等,就会在子书上选定一部分内容,并通过点击功能选项(包括但不限于点击子书客户端上提供的功能选项,或者通过点击鼠标右键后在显示的功能选项上点击,或者通过键盘输入的方式点击功能选项等等)的方式。然后子书客户端就会发送包含动作类型以及该交互请求所针对的子书内容(即用户选择的内容)的交互请求。其中该交互请求所针对的子书内容可以包括子书编号、子书版本、用户选择的内容在子书中的位置(页码、偏移量或坐标)。除此之外,在交互请求中还可以包括加密方式、用户id等信息。
[0101]服务器接收到交互请求后,依据子书的排版信息确定该交互请求所针对子书内容在母书源代码中的位置,然后依据确定出的位置,对母书源代码执行该交互请求包含的动作类型对应的处理。下面分别以检索、复制和编辑这三种动作类型为例对服务器执行的处理进行说明。
[0102]如果交互请求包含的动作类型为检索,即用户欲检索某内容在子书中出现的位置,则服务器首先依据排版信息确定该内容在母书源代码中的位置,找到该位置对应的文本,在母书源代码中检索该文本出现的位置,依据排版信息再将检索到的位置转换成子书的位置作为执行结果返回给子书客户端。这样用户就能够获取到欲检索的内容在子书中的位置。
[0103]如果交互请求包含的动作类型为复制,即用户欲复制子书中的某内容,则服务器首先依据排版信息确定该内容在母书源代码中的位置,确定该位置对应的文本,将该文本发送至子书客户端,供子书客户端存储至剪切板,这样就完成了子书中内容的复制,用户就能够将该内容从剪切板中复制到其他地方。
[0104]如果交互请求包含的动作类型为编辑,即用户与编辑子书中的某内容,则服务器首先依据排版信息确定该内容在母书源代码中的位置,确定出该位置对应的文本,然后按照交互请求中包含的编辑内容对确定的文本进行编辑,将编辑结果作为执行结果返回给子书客户端。这样就完成了用户对子书的编辑,能够将选择的内容编辑成为上述的编辑内容。上述编辑结果可以是段落级别的、页级别的,甚至可以是整个子书级别的。
[0105]同样,为了保证安全和版权保护,子书客户端只有在登录的情况下才能够进行上述交互,即服务器只针对登录状态的子书客户端的交互请求进行响应,并发送执行结果给该子书客户端。在此基础上同样可以附加一些限制策略,例如可以包括但不限于以下策略:
[0106]策略1、服务器记录并限制子书客户端连续请求的内容数量,例如当某子书客户端交互请求涉及到的连续页码数超过了设定值,就拒绝响应该子书客户端的交互请求。
[0107]策略2、服务器记录并限制子书客户端请求内容的时间间隔,例如当某子书客户端快速频繁地发送交互请求,如果发送交互请求的时间间隔小于预设的阈值,则拒绝响应该子书客户端的交互请求。
[0108]策略3、服务器记录并限制子书客户端请求的内容总数量,例如当某子书客户端本次登录的交互请求涉及到的子书内容总页数超过了设定值,就拒绝响应该子书客户端的交互请求。
[0109]交互请求中包含有用户id,在服务器的记录和上述策略的实现均是基于用户id实现的。
[0110]在上述实施例中,母书源代码所在的服务器和子书客户端之间的传输可以采用加密协议,例如可以采用SSl (安全套接层)加密协议。这种方式可以有效解决重要文件的鉴权问题,例如政府公文的源文件作为母书源代码放在服务器上,然后采用生成子书的方式并通过ssl强加密传输,即解决了阅读问题又保证了文档的鉴权。
[0111]以上是对本发明所提供的方法进行的详细描述,下面通过实施例二和三对本发明提供的装置进行详细描述。
[0112]实施例二、
[0113]图2为本发明实施例二提供的电子文档的生成装置结构图,该装置设置在服务器端,如图2所示,包括:母书获取单元01、排版存储单元02和子书交互单元03。
[0114]母书获取单元01用于获取并存储母书源代码。具体地,母书获取单元01获取母书源代码的方式可以采用但不限于以下方式:
[0115]方式一、母书获取单元01获取版权方提供的指定格式的母书源代码。
[0116]方式二、母书获取单元01获取搜索引擎将搜索结果进行聚合并转换成指定格式的母书源代码。
[0117]其中上述指定的格式可以是BDF、HTML、XML或带标记的txt格式等结构化文本格式。在此母书源代码具有一个唯一的编号,本发明并不对具体的编号算法进行限定,可以采用任意编号算法,只要保证唯一性和安全性即可,例如编号算法可以是对文档内容做安全散列算法,提取前12个字符作为编号。
[0118]另外,在母书获取单元01存储母书源代码时,可以针对各母书源代码生成指纹,一方面用于内容去重,另一方面也可以用于快速反抄袭。
[0119]排版存储单元02用于将母书源代码进行排版生成不支持版面重排格式的子书,并存储子书的排版信息。其中对于生成的子书,为了保证版权保护的安全性,采用不支持版面重排格式,优选PDF格式,PDF格式具有与所有系统兼容、所见即所得以及防篡改等特性,只要具有类似特性的格式均可采用,例如XPS格式也可以采用。[0120]具体地,排版存储单元02在进行排版时可以采用以下两种形式中的一种或组合:
[0121]形式一、预先依据常用终端屏幕类型将母书源代码进行排版,分别生成与常用终端屏幕类型相适应的子书。例如,目前常用的终端屏幕是4寸和10寸,这些终端屏幕上搭载的子书客户端通常也是适应于4寸和10寸的,则在服务器端针对4寸和10寸的终端屏幕类型分别对母书源代码进行排版,分别生成与4寸终端屏幕类型相适应的子书以及与10寸终端屏幕类型相适应的子书。这里终端屏幕类型可以是屏幕尺寸、屏幕分辨率等,在进行排版时还可以进一步结合不同字号生成不同的子书。虽然同一母书源代码对应适应于不同终端屏幕类型的子书,但母书源代码的编号以及书名是唯一的,这样能够方便实现下面步骤中阅读请求和交互请求的响应。
[0122]形式二、响应子书客户端的阅读请求,将母书源代码依据子书客户端所在终端的屏幕类型进行排版。这种情况是基于请求触发对母书源代码的排版。即当接收到子书客户端针对某母书源代码的阅读请求时,如果当前还没有存储与该子书客户端相适应排版(即该子书客户端所在终端屏幕类型相适应)的子书,则依据该子书客户端所在终端屏幕类型对母书源代码进行排版,生成与该子书客户端相适应排版的子书;如果当前已经存储有与该子书客户端相适应排版的子书,则不用再针对该子书客户端生成子书。
[0123]当采用上述两种方式相组合的方式时,例如针对常用的终端屏幕类型对母书源代码进行排版,分别生成与这些常用的终端屏幕类型相适应的子书;而针对不常用的终端屏幕类型,在接收到这类型子书客户端的阅读请求时再触发对母书源代码进行排版,生成与该子书客户端所在终端屏幕类型相适应的子书。
[0124]本发明实施例采用的排版技术可以是基于xelatex排版技术,也可以是方正排版,或者adobe公司的indesign排版技术,等等。
[0125]子书交互单元03用于将子书发送给与子书的排版相适应的子书客户端。在此子书交互单元03可以采用主动推送的方式发送子书,例如基于订阅的方式主动推送至相应的子书客户端。优选地,也可以基于子书客户端的阅读请求来发送与该子书客户端相适应排版的子书,这种情况下,子书交互单元03接收到子书客户端的阅读请求时,确定与该子书客户端相适应的排版类型,将该排版类型的子书中子书客户端所请求的内容发送子书客户端。子书客户端所请求的内容可以包括:请求的电子书信息,依据该电子书信息服务器可以确定出对应的子书,还可以包括请求的页码,通常对于电子书的阅读请求是基于页码的,服务器从对应子书中查找请求的页码,并将该页码的内容发送给子书客户端。当然也可以基于整本电子书,服务器将对应子书整个发送给子书客户端。另外,由于阅读请求中包含子书客户端信息,服务器能够确定与该子书客户端信息相适应的排版类型,从而发送该排版类型中子书客户端请求的子书内容。
[0126]本发明中的子书和其他app—样,都会存在更新的问题,如果母书源代码发生版本更新,则排版存储单元02针对更新后版本的母书源代码重新进行排版生成新版本的子书,子书交互单元03将新版本的子书发送给子书客户端。
[0127]如果母书源代码未发生版本更新但存在内容更新,例如仅仅是某些错别字的修改,或者是添加新页或者删除某页等,则排版存储单元02依据子书的排版信息确定更新的内容在子书中对应的位置,更新子书中相应的内容,子书交互单元03将子书中更新的内容发送给子书客户端。这种情况下,发送给子书客户端的内容仅仅涉及更新的内容,通常仅在页级别的,这就大大节省了子书客户端的流量损耗。
[0128]基于上述母子书的机制,可以在母书源代码嵌入推广信息,这样在各子书客户端上的子书上也能够协同显示该推广信息,并且上述的更新机制,也能够保证推广信息能够得到及时地更新。
[0129]在子书交互单元03发送子书给子书客户端时,可以将生成的不支持版面重排格式的子书(例如PDF格式的子书)发送给子书客户端,这种情况适用于版权保护要求不那么高的情况,PDF格式的内容可以编辑复制。如果要求较高的版权保护等级,则可以将生成的不支持版面重排格式的子书转换成一页一页的图片,例如将PDF格式转换成PNG或DJVU等格式的图片,然后发送给子书客户端。
[0130]排版存储单元02存储的母书源代码至子书的排版信息可以认为是逆向引用语法文件,通过该排版信息可以从子书重新回到母书源代码。该排版信息记录子书所有内容(包括文字、图片、超链接等)在母书源代码中对应的位置,服务器根据该排版信息就可以获知子书中内容在母书源代码中对应的位置。基于该排版信息就能够实现电子书的交互功能,例如通过子书客户端实现编辑、复制、检索等功能。为了实现上述交互功能,该装置还包括:交互执行单元05。
[0131]子书交互单元03接收子书客户端的交互请求,交互执行单元05依据排版信息执行交互请求,然后子书交互单元03将交互执行单元05的执行结果返回给子书客户端。
[0132]子书客户端发送交互请求是由用户动作触发的,例如当用户有复制需求、检索需求或者编辑需求等,就会在子书上选定一部分内容,并通过点击功能选项(包括但不限于点击子书客户端上提供的功能选项,或者通过点击鼠标右键后在显示的功能选项上点击,或者通过键盘输入的方式点击功能选项等等)的方式。然后子书客户端就会发送包含动作类型以及该交互请求所针对的子书内容(即用户选择的内容)的交互请求。其中该交互请求所针对的子书内容可以包括子书编号、子书版本、用户选择的内容在子书中的位置(页码、偏移量或坐标)。除此之外,在交互请求中还可以包括加密方式、用户id等信息。
[0133]子书交互单元03在接收子书客户端的交互请求后,交互执行单元05具体依据排版信息确定交互请求所针对的子书内容在母书源代码中的位置,再依据确定出的位置,对母书源代码执行交互请求包含的动作类型对应的处理。
[0134]当交互请求包含的动作类型为检索时,交互执行单元05首先依据排版信息确定交互请求所针对的子书内容在母书源代码中的位置,找到该位置对应的文本,在母书源代码中检索该文本出现的位置,依据排版信息再将检索到的位置转换成子书的位置作为执行结果,由子书交互单元03将执行结果返回给子书客户端。
[0135]当交互请求包含的动作类型为复制时,交互执行单元05首先依据排版信息确定交互请求所针对的子书内容在母书源代码中的位置,确定该位置对应的文本,将该文本作为执行结果,由子书交互单元03将执行结果发送至子书客户端,供子书客户端存储至剪切板,这样就完成了子书中内容的复制,用户就能够将该内容从剪切板中复制到其他地方。
[0136]当交互请求包含的动作类型为编辑时,交互执行单元05依据排版信息确定交互请求所针对的子书内容在母书源代码中的位置,确定出该位置对应的文本,然后按照交互请求中包含的编辑内容对确定的文本进行编辑,将编辑结果作为执行结果,由子书交互单元03将执行结果返回给子书客户端。这样就完成了用户对子书的编辑,能够将选择的内容编辑成为上述的编辑内容。上述编辑结果可以是段落级别的、页级别的,甚至可以是整个子书级别的。
[0137]为了保证安全和版权保护,子书客户端只有在用户登录的情况下才能够获取到子书以及进行上述交互,即服务器只针对登录状态的子书客户端的阅读请求和交互请求进行响应。在此基础上可以附加一些限制策略,即该装置还包括:访问控制单元04,用于记录并限制子书客户端连续请求的内容数量,或者,记录并限制子书客户端请求内容的时间间隔,或者,服务器记录并限制子书客户端请求的内容总数量。
[0138]上述策略都是为了防止恶意用户获取大量内容或者频繁获取内容用于盗版,阅读请求和交互请求中包含有用户id,在服务器的记录和上述策略的实现均是基于用户id实现的。上述策略仅是本发明实施例列举的几种,还可以采用其他本领域人员能够想到的防止恶意用户的策略,在此不再一一穷举。
[0139]实施例三、
[0140]图3为本发明实施例三提供的子书客户端的结构图,如图3所示,该子书客户端包括:阅读请求单元11和子书接收单元12。
[0141]阅读请求单元11用于向服务器发送阅读请求。该阅读请求中包含子书客户端所请求的内容和子书客户端信息。子书客户端所请求的内容可以包括:请求的电子书信息,依据该电子书信息服务器可以确定出对应的子书,还可以包括请求的页码,通常对于电子书的阅读请求是基于页码的,服务器从对应子书中查找请求的页码,并将该页码的内容发送给子书客户端。当然也可以基于整本电子书,服务器将对应子书整个发送给子书客户端。另外,由于阅读请求中包含子书客户端信息,服务器能够确定与该子书客户端信息相适应的排版类型,从而发送该排版类型中子书客户端请求的子书内容。
[0142]子书接收单元12用于接收服务器发送来的与子书客户端相适应排版的子书。
[0143]为了实现与母书源代码所在服务器之间的交互功能,该子书客户端还包括:交互请求单元13和结果接收单元14。
[0144]交互请求单元13,用于服务器发送交互请求。该交互请求是由用户动作触发的,例如当用户有复制需求、检索需求或者编辑需求等,就会在子书上选定一部分内容,并通过点击功能选项(包括但不限于点击子书客户端上提供的功能选项,或者通过点击鼠标右键后在显示的功能选项上点击,或者通过键盘输入的方式点击功能选项等等)的方式。然后子书客户端就会发送包含动作类型以及该交互请求所针对的子书内容(即用户选择的内容)的交互请求。其中该交互请求所针对的子书内容可以包括子书编号、子书版本、用户选择的内容在子书中的位置(页码、偏移量或坐标)。除此之外,在交互请求中还可以包括加密方式、用户id等信息。
[0145]结果接收单元14,用于接收服务器发送来执行结果,执行结果是服务器依据母书源代码排版成子书的排版信息得到的。
[0146]当交互请求包括的动作类型为检索时,执行结果为该子书客户端请求检索的文本在母书源代码中出现的位置。
[0147]当交互请求包括的动作类型为复制时,执行结果为该子书客户端请求复制的文本,结果接收单元还用于将接收到的执行结果存储至剪切板。
[0148]当交互请求包含的动作类型为编辑时,执行结果为该子书客户端请求编辑的结果O
[0149]在本发明所提供的几个实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0150]上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory, ROM)、随机存取存储器(Random Access Memory, RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0151]由以上描述可以看出,本发明提供的方法、装置和客户端具备以下优点:
[0152]I)本发明在服务器端存储母书源代码并对母书源代码排版生成不支持版面重排格式的子书,通过这种母书源代码作为原始格式,适应于不同终端屏幕的子书作为目标格式,解决了不同终端屏幕的显示问题。
[0153]2)子书的不支持版面重排格式同时保证了版权保护的安全问题。
[0154]3)鉴于唯一的母书源代码对应适应于不同终端屏幕的多种子书,基于此不同终端屏幕的子书客户端均能够正常地显示同一母书源代码的内容,且能够基于同一母书源代码实现交互功能,例如复制、检索和编辑等功能。
[0155]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种电子文档的生成方法,其特征在于,该方法包括: 51、服务器获取并存储母书源代码; 52、将所述母书源代码进行排版生成不支持版面重排格式的子书,并存储子书的排版信息; 53、将所述子书发送给与所述子书的排版相适应的子书客户端。
2.根据权利要求1所述的方法,其特征在于,在所述步骤S3之后还包括: 54、如果接收到所述子书客户端的交互请求,依据所述排版信息将所述交互请求对应的执行结果返回给所述子书客户端。
3.根据权利要求1所述的方法,其特征在于,所述步骤SI具体包括: 服务器获取版权方提供的指定格式的母书源代码;或者, 服务器获取搜索引擎将搜索结果进行聚合并转换成指定格式的母书源代码。
4.根据权利要求3 所述的方法,其特征在于,所述指定格式包括以下结构化文本格式:BDF、HTML、XML或带标记的txt格式。
5.根据权利要求1所述的方法,其特征在于,所述不支持版面重排格式包括:PDF或XPS。
6.根据权利要求1所述的方法,其特征在于,所述步骤S2包括以下两种形式中的一种或组合: 形式一、预先依据常用终端屏幕类型将所述母书源代码进行排版,分别生成与所述常用终端屏幕类型相适应的子书; 形式二、响应子书客户端的阅读请求,将所述母书源代码依据所述子书客户端所在终端的屏幕类型进行排版。
7.根据权利要求1所述的方法,其特征在于,如果所述母书源代码发生版本更新,则针对更新后版本的母书源代码重新进行排版生成新版本的子书,将新版本的子书发送给所述子书客户端;或者, 如果所述母书源代码未发生版本更新但存在内容更新,则依据子书的排版信息确定更新的内容在子书中对应的位置,更新子书中相应的内容,并将子书中更新的内容发送给所述子书客户端。
8.根据权利要求2所述的方法,其特征在于,依据所述排版信息将交互请求对应的执行结果返回给所述子书客户端包括: 541、所述服务器依据所述排版信息确定所述交互请求所针对的子书内容在母书源代码中的位置; 542、所述服务器依据步骤S41确定出的位置,对母书源代码执行所述交互请求包含的动作类型对应的处理; 543、将执行结果返回给所述子书客户端。
9.根据权利要求8所述的方法,其特征在于,当所述交互请求包含的动作类型为检索时,所述步骤S42为:所述服务器确定所述步骤S41确定出的位置对应的文本,在母书源代码中检索所述文本出现的位置,依据所述排版信息将检索到的位置转换成子书的位置作为执行结果; 当所述交互请求包含的动作类型为复制时,所述步骤S42为:所述服务器确定所述步骤S41确定出的位置对应的文本,将确定的文本发送至所述子书客户端供存储至剪切板; 当所述交互请求包含的动作类型为编辑时,所述步骤S42为:所述服务器确定所述步骤S41确定出的位置对应的文本,按照所述交互请求包含的编辑内容对确定的文本进行编辑,将编辑结果作为执行结果。
10.根据权利要求1所述的方法,其特征在于,所述步骤S3具体为: 接收到子书客户端的阅读请求时,确定与该子书客户端相适应的排版类型,将该排版类型的子书中所述子书客户端所请求的内容发送所述子书客户端。
11.根据权利要求2或10所述的方法,其特征在于,所述服务器记录并限制子书客户端连续请求的内容数量;或者, 所述服务器记录并限制子书客户端请求内容的时间间隔;或者, 所述服务器记录并限制子书客户端请求的内容总数量。
12.一种电子文档的生成装置,该装置设置在服务器端,其特征在于,该装置包括: 母书获取单元,用于获取并存储母书源代码; 排版存储单元,用于将所述母书源代码进行排版生成不支持版面重排格式的子书,并存储子书的排版信息;子书交互单元,用于将所述子书发送给与所述子书的排版相适应的子书客户端。
13.根据权利要求12所述的装置,其特征在于,该装置还包括:交互执行单元; 所述子书交互单元,还用于接收所述子书客户端的交互请求,将所述交互执行单元的执行结果返回给所述子书客户端; 所述交互执行单元,用于依据所述排版信息执行所述交互请求。
14.根据权利要求12所述的装置,其特征在于,所述母书获取单元获取版权方提供的指定格式的母书源代码;或者,获取搜索引擎将搜索结果进行聚合并转换成指定格式的母书源代码。
15.根据权利要求14所述的装置,其特征在于,所述指定格式包括以下结构化文本格式:BDF、HTML、XML或带标记的txt格式。
16.根据权利要求12所述的装置,其特征在于,所述不支持版面重排格式包括:PDF或XPS。
17.根据权利要求12所述的装置,其特征在于,所述排版存储单元在进行排版时采用以下两种形式中的一种或组合: 形式一、预先依据常用终端屏幕类型将所述母书源代码进行排版,分别生成与所述常用终端屏幕类型相适应的子书; 形式二、响应子书客户端的阅读请求,将所述母书源代码依据所述子书客户端所在终端的屏幕类型进行排版。
18.根据权利要求12所述的装置,其特征在于,如果所述母书源代码发生版本更新,则所述排版存储单元针对更新后版本的母书源代码重新进行排版生成新版本的子书,所述子书交互单元将新版本的子书发送给所述子书客户端;或者, 如果所述母书源代码未发生版本更新但存在内容更新,则所述排版存储单元依据子书的排版信息确定更新的内容在子书中对应的位置,更新子书中相应的内容,所述子书交互单元将子书中更新的内容发送给所述子书客户端。
19.根据权利要求13所述的装置,其特征在于,所述交互执行单元具体依据所述排版信息确定所述交互请求所针对的子书内容在母书源代码中的位置,再依据确定出的位置,对母书源代码执行所述交互请求包含的动作类型对应的处理。
20.根据权利要求19所述的装置,其特征在于,当所述交互请求包含的动作类型为检索时,所述交互执行单元确定所述确定出的位置对应的文本,在母书源代码中检索所述文本出现的位置,依据所述排版信息将检索到的位置转换成子书的位置作为执行结果; 当所述交互请求包含的动作类型为复制时,所述交互执行单元确定所述确定出的位置对应的文本,将确定的文本发送至所述子书客户端供存储至剪切板; 当所述交互请求包含的动作类型为编辑时,所述交互执行单元确定所述确定出的位置对应的文本,按照所述交互请求包含的编辑内容对确定的文本进行编辑,将编辑结果作为执行结果。
21.根据权利要求12所述的装置,其特征在于,所述子书交互单元接收到子书客户端的阅读请求时,确定与该子书客户端相适应的排版类型,将该排版类型的子书中所述子书客户端所请求的内容发送给所述子书客户端。
22.根据权利要求13或21所述的装置,其特征在于,该装置还包括:访问控制单元,用于记录并限制子书客户端连续请求的内容数量,或者,记录并限制子书客户端请求内容的时间间隔,或者,所述服务器记录并限制子书客户端请求的内容总数量。
23.一种子书客户端,其特征在于,该子书客户端包括: 阅读请求单元,用 于向服务器发送阅读请求; 子书接收单元,用于接收所述服务器发送来的与所述子书客户端相适应排版的子书,所述子书是对所述阅读请求所请求的母书源代码进行排版后生成的不支持版面重排格式的子书。
24.根据权利要求23所述的子书客户端,其特征在于,该子书客户端还包括: 交互请求单元,用于所述服务器发送交互请求; 结果接收单元,用于接收所述服务器发送来执行结果,所述执行结果是所述服务器依据所述母书源代码排版成所述子书的排版信息得到的。
25.根据权利要求24所述的子书客户端,其特征在于,当所述交互请求包括的动作类型为检索时,所述执行结果为该子书客户端请求检索的文本在母书源代码中出现的位置; 当所述交互请求包括的动作类型为复制时,所述执行结果为该子书客户端请求复制的文本,所述结果接收单元还用于将接收到的执行结果存储至剪切板; 当所述交互请求包含的动作类型为编辑时,所述执行结果为该子书客户端请求编辑的结果。
【文档编号】G06F17/21GK103970799SQ201310044142
【公开日】2014年8月6日 申请日期:2013年2月4日 优先权日:2013年2月4日
【发明者】詹君 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1