排版方法和排版引擎的制作方法

文档序号:6539614阅读:182来源:国知局
排版方法和排版引擎的制作方法
【专利摘要】本发明公开了一种排版方法和排版引擎,其中,所述排版方法包括:获取用户在网页的可编辑区域输入的编辑指令,当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度,根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版。本发明实现了在网页上进行文本编辑和自动排版。
【专利说明】排版方法和排版引擎
【技术领域】
[0001]本发明涉及计算机技术,尤其涉及一种排版方法和排版引擎。
【背景技术】
[0002]随着计算机技术的不断发展,自动排版技术越来越成为排版引擎中的关键技术,并且广泛应用于文本文档编辑软件中,主要提供文字排版的功能。其中,文本文档编辑软件包括Micsoft Office WorcUWPS Word等文档编辑软件,,以及Adobe PageMaker、方正飞腾等排版软件。
[0003]目前,现有的编辑软件和浏览器都包含排版引擎,通常的做法是将输入的每一个文字的宽度、高度进行记录保存,多个文字构成行,多个行构成段,多个段构成区域。每次输入,如果超出区域宽度,则自动换行。相比较浏览器的网页排版而言,编辑软件还提供了超出区域高度自动更换区域的功能。
[0004]但是,按区域排版的技术目前只应用于计算机软件程序中,无法移植到网络平台上,而且编辑排版软件种类繁多,且文档标准各不相同,相互之间无法完全兼容,必须需要通过转换工具进行处理。

【发明内容】

[0005]有鉴于此,本发明实施例的目的在于提出一种排版方法和排版引擎,能够获取用户在网页的可编辑区域输入的编辑指令,当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度,并根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版,实现了在网页上进行文本编辑和自动排版。
[0006]第一方面,本发明实施例提供了一种排版方法,所述方法包括:
[0007]获取用户在网页的可编辑区域输入的编辑指令;
[0008]当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度;
[0009]根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版
[0010]第二方面,本发明实施例提供了一种排版引擎,其特征在于,所述排版引擎包括:
[0011]获取单元,用于获取用户在网页的可编辑区域输入的编辑指令;
[0012]计算单元,用于当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度;
[0013]排版单元,用于根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版。
[0014]本发明实施例通过接收用户在网页的可编辑区域的输入信息,计算所述输入信息的宽度和高度,当所述输入信息的宽度超过所述可编辑区域的宽度时,则在所述可编辑区域内进行换行显示,并根据所述输入信息的高度对所述输入信息进行排版,以使用户能够在网页上进行文本编辑和自动排版。
【专利附图】

【附图说明】
[0015]图1是本发明第一实施例的排版方法的流程图;
[0016]图2是本发明第二实施例的排版方法的流程图;
[0017]图3是本发明第三实施例的排版引擎的示意图。
【具体实施方式】
[0018]为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
[0019]图1是本发明第一实施例的排版方法的流程图。该排版方法可以应用于任一平台网站。如图1所示,所述方法包括:
[0020]步骤110、获取用户在网页的可编辑区域输入的编辑指令。
[0021]具体地,网页的可编辑区域是用于用户进行编辑输入的。该可编辑区域可以有一个,也可以有多个。同时,该可编辑区域具有强制换行的功能,比如,通过层叠样式表单(Cascading Style Sheets,CSS)命令,将该可编辑区域设置为具有强制换行的功能。该强制换行的功能具体为:当用户输入信息超过可编辑区域的宽度时,会自动进行换行显示。另夕卜,可以通过Javascript监控键盘按键获取用户的编辑指令。其中,JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
[0022]步骤120、当用户的编辑指令为需要触发排版的指令时,则执行该编辑指令,并计算所述编辑后的用户输入信息的宽度和高度。
[0023]具体地,用户的编辑指令包括增加指令、删除指令和移动指令,所述增加指令和删除指令都需要触发排版,所述移动指令不需要触发排版。其中,所述增加指令包括用户按下可输出内容的按键(比如,字母、数字)等、或者用户按下组合键(比如,Ctrl、Shift、Alt)时;所述移动指令包括用户按下移动键(比如,Up、Down、Left、Right、Home、End、PageUp、PageDown 等X
[0024]步骤130、根据用户输入信息的宽度和高度、以及可编辑区域的宽度和高度对所述用户输入信息进行排版。
[0025]具体地,将用户输入信息的高度与网页的可编辑区域的高度进行比较,根据其比较结果进行顺延排版或递补排版。
[0026]在本实施例的一个优选实施方式中,步骤110之前,还包括:在网页上创建可编辑区域,所述网页上至少包括一个可编辑区域。
[0027]具体地,在网页上创建可编辑区域的过程为:
[0028](I)在超级文本标记语言(Hypertext Markup Language,HTML)网页内默认创建一页,并创建一个或多个块状区域,比如,如〈DIVX/DIV〉。其中,〈DIVX/DIV〉主要是用来设置涵盖一个区块为主,所谓的区块是包含一行以上的数据,所以在〈DIVX/DIV〉的开始之前与结束后,浏览都会自动换行,所以夹在〈DIVX/DIV〉间的数据,自然会与其前后文隔开而自成一区快。
[0029](2)利用网页的设计模式(Design Mode)功能,将这一个或多个块状区域设置为可编辑区域,使得用户可以在该可编辑区域内进行编辑输入。
[0030]在本实施例的另一个优选实施方式中,在步骤110中获取用户在网页的可编辑区域输入的编辑指令,包括:监控用户的键盘按键操作,根据所述键盘按键操作获取与所述键盘按键相对应的编辑指令,所述编辑指令包括增加指令、删除指令和移动指令,其中,所述增加指令和删除指令都需要触发排版,所述移动指令不需要触发排版。
[0031]具体地,利用输入拦截技术即通过Javascript监控键盘按键,根据不同的按键获得不同的编辑指令。其中,监控键盘的按键输入,按键分为两种类型,一种是输出内容,t匕如,字母按键、数字按键;另外一种不输出内容,像方向按键、跳转按键等。只有输出内容的按键才需要监控,因为会影响页面内的内容和排版,只要页面内的内容有变动,就需要重新进行排版,而不输出内容的按键不需要做任何排版处理。
[0032]下面具体说明通过Javascript监控键盘按键,根据不同的按键进行不同处理的过程。
[0033]( I)按下可输出内容的按键(比如,字母、数字)等时,先计算输出后的宽度和高度,再根据计算结果进行排版处理。
[0034](2)按下删除按键(比如,Backspace、Delete)时,先计算删除后的内容宽度和高度,再根据计算结果进行排版处理。
[0035](3)按下组合键(比如,Ctrl、Shift、Alt)时,根据组合的字母按键进行单独处理,例如复制、粘贴等,再根据单独处理后进行排版处理。
[0036](4)按下移动键(比如,Up、Down、Left、Right、Home、End、PageUp、PageDown 等)时,不做特殊处理,使用系统默认的光标移动处理。当光标处于区域边界,并移动出当前区域时,做跳转区域处理。
[0037]其中,(I)中获得的是增加指令,(2)中获得的是删除指令,(3)中根据组合的字母按键进行单独处理,有些组合是增加命令,比如Ctrl+V粘贴是增加命令,有些组合是删除命令,比如,Ctrl+X剪切是减少内容,也属于删除命令中的一种类型。不管增加指令还是删除指令,都使得用户输入信息有所变化,所以需要重新进行排版,比如,增加一个字,减少一个字,剪切、删除多个字,粘贴多个字等情况,都需要根据内容进行文字排版,根据区域范围做换行、换页等处理。但是(4)中获得的是移动指令,不管如何移动,都不使得用户输入信息有所变化,所以不需要重新进行排版。
[0038]在本实施例的再一个优选实施方式中,在步骤120中所述当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度,包括:当所述编辑指令为增加指令时,则执行所述增加指令,并计算所述增加后的用户输入信息的宽度和高度;当所述编辑指令为删除指令时,则执行所述删除指令,并计算所述删除后的用户输入信息的宽度和高度。
[0039]在本实施例的再一个优选实施方式中,在步骤130中所述根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版,包括:当所述用户输入信息的宽度超过所述可编辑区域的宽度时,则在所述可编辑区域内进行换行显示;当所述用户输入信息的高度大于所述可编辑区域的高度时,对所述用户输入信息进行顺延排版;当所述用户输入信息的高度小于所述可编辑区域的高度时,对所述用户输入信息进行递补排版。
[0040]其中,顺延排版指的是当所述用户输入信息的高度大于所述可编辑区域的高度时,计算超出所述可编辑区域的高度的输入信息,并将所述超出的输入信息顺延至下一个可编辑区域的首位置。如果网页中没有下一个可编辑区域,则自动创建该可编辑区域,并将该可编辑区域设置具有强制换行的功能。
[0041]递补排版指的是当所述用户输入信息的高度小于所述可编辑区域的高度时,计算所述可编辑区域的剩余区域,并将下一个可编辑区域的首位置的输入信息递补到所述剩余区域。
[0042]另外,如果当前光标处于转移的内容范围内,一并将光标移动到下一区域,移动后光标不在当前屏幕范围内时需进行翻页处理。
[0043]在本实施例的再一个优选实施方式中,在步骤130之后,还包括:顺延排版和递补排版被触发后,如果当前页处理完之后,自动计算处理下一页的输入内容,直到最后一页。
[0044]具体地,顺延排版中,如果当前页区域内文字满了,并且有超出的文字,会顺延到后一页的页首位置,如果后一页又满了,以此类推顺延到再后一页。比如,如果现在有5页满的内容,在第一页中间输入一行文字,则第一页末行文字会顺延到第二页首行,第二页末行顺延到第三页首行,依次类推。
[0045]递补排版中,如果当前页区域内文字减少时,并且当前页有空白区域需要填补时,会递补后一页页首的内容到当前页页尾,然后,后一页如果也出现空白区域需要填补,则递补再后一页的内容,依次类推。比如,现在有5页满的内容,在第一页中间删除一行文字,贝U,第二页首行文字递补到第一页末行,第三页首行文字递补到第二页末行,依次类推。
[0046]因此,本发明实施例的排版方法,通过获取用户在网页的可编辑区域输入的编辑指令,当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度,根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版,实现了在网页上进行文本编辑和自动排版。
[0047]图2是本发明第二实施例的排版方法的流程图。该排版方法可以应用于任一平台网站。如图1所示,所述方法包括:
[0048]步骤201、通过键盘监控获取用户在网页的可编辑区域输入的编辑指令。其中,网页代码是用html、javascript编写的,并采用javascript脚本进行的逻辑处理,html做显示处理。
[0049]步骤202、判断获取到的编辑指令是否为需要触发排版的指令,如果是,执行步骤203,否则执行步骤201。
[0050]步骤203、执行编辑指令,并计算所述编辑后的用户输入信息的宽度和高度。其中,用户输入信息形成的生成的文档是采用html标准保存的,
[0051]步骤204、判断用户输入信息的宽度是否超过可编辑区域的宽度,如果是,则执行步骤205,如果不是,则执行步骤203。
[0052]步骤205、将用户输入信息的高度与可编辑区域的高度进行比较,如果用户输入信息的高度大于可编辑区域的高度,则执行步骤206 ;如果小于,则执行步骤208。
[0053]步骤206、顺延排版,即计算超出可编辑区域的高度的输入信息,并将所述超出的输入信息顺延至下一个可编辑区域的首位置。如果网页中没有下一个可编辑区域,则自动创建该可编辑区域,并将该可编辑区域设置具有强制换行的功能。
[0054]步骤207、判断下一页是否需要排版,如何需要,则执行步骤206,如果不需要,则执行步骤210。
[0055]步骤208、递补排版,即计算可编辑区域的剩余区域,并将下一个可编辑区域的首位置的输入信息递补到所述剩余区域。
[0056]步骤209、判断下一页是否需要排版,如何需要,则执行步骤208,如果不需要,则执行步骤210。
[0057]步骤210、排版结束。
[0058]基于上述本发明第一实施例和第二实施例提供的排版方法,可以本发明提供的排版方法具有以下优点:
[0059](I)基于网页实现:利用浏览器排版引擎、HTML、JavaScript等技术,实现在网页上的文本编辑及自动排版,可以运用到任何平台网站上。
[0060]因为,现有的每款浏览器都有排版引擎,例如一个div块,第一行文字宽度满了会自动换行到第二行,但没有区域高度满了,排版到新区域的功能,而本发明实施例实现了当区域高度满了,可以排版到下一个可编辑区域中。另外,网页代码是用html、javascript编写的,并采用javascript脚本进行的逻辑处理,html做显示处理。正因为是基于html、javascript编写的,所以不会受限于平台语言,例如JSP、ASP、PHP这些平台,都可以使用该代码。
[0061](2)跨平台编辑:通过任意平台的浏览器访问网页,都可以进行文档编辑操作,不受操作系统、软件框架的影响。
[0062]因为,IE、Firefox、Opera、Maxthon、GoogleChrome 等这些浏览器都支持 html 和javascript,所以都可以使用本代码进行排版编辑,不受windows、ios、android、Iinux操作系统限制。
[0063](3 )跨平台浏览:按照HTML数据标准进行保存,在任意平台的浏览器上均可浏览阅读。
[0064]因为,编辑制作生成的文档是采用html标准保存的,任何浏览器(IE、Firefox,0pera、Maxthon、Google Chrome等)都可以像浏览网页一样浏览生成的文档。像word生成的文件是基于微软自己的标准,必须安装微软的Offic软件才能浏览查看,而本专利生成的是html代码,任何浏览器都可以查看,不需要安装软件或插件。
[0065]图3是本发明第三实施例的排版引擎的示意图。该排版引擎用来执行本发明第一实施例和第二实施例的排版方法。如图3所示,所述排版引擎30包括:获取单元31、计算单元32和排版单元33。
[0066]获取单元31用于获取用户在网页的可编辑区域输入的编辑指令;
[0067]计算单元32用于当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度;
[0068]排版单元33用于根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版。
[0069]在本实施例的一个优选实施方式中,排版引擎30还包括:
[0070]创建单元34用于在网页上创建可编辑区域,所述网页上至少包括一个可编辑区域。
[0071]具体地,在HTML网页内默认创建一页,并创建一个或多个块状区域,再利用网页的Design Mode功能,将这一个或多个块状区域设置为可编辑区域,使得用户可以在该可编辑区域内进行编辑输入。
[0072]在本实施例的另一个优选实施方式中,所述获取单元31还用于监控用户的键盘按键操作,根据所述键盘按键操作获取与所述键盘按键相对应的编辑指令,所述编辑指令包括增加指令、删除指令和移动指令,其中,所述增加指令和删除指令都需要触发排版,所述移动指令不需要触发排版;以及,所述计算单元22还用于当所述编辑指令为增加指令时,则执行所述增加指令,并计算所述增加后的用户输入信息的宽度和高度;当所述编辑指令为删除指令时,则执行所述删除指令,并计算所述删除后的用户输入信息的宽度和高度。
[0073]在本实施例的再一个优选实施方式中,所述排版单元33还用于当所述用户输入信息的宽度超过所述可编辑区域的宽度时,则在所述可编辑区域内进行换行显示;当所述用户输入信息的高度大于所述可编辑区域的高度时,对所述用户输入信息进行顺延排版;当所述用户输入信息的高度小于所述可编辑区域的高度时,对所述用户输入信息进行递补排版;其中,所述顺延排版为当所述用户输入信息的高度大于所述可编辑区域的高度时,计算超出所述可编辑区域的高度的输入信息,并将所述超出的输入信息顺延至下一个可编辑区域的首位置;所述递补排版为当所述用户输入信息的高度小于所述可编辑区域的高度时,计算所述可编辑区域的剩余区域,并将下一个可编辑区域的首位置的输入信息递补到所述剩余区域。
[0074]因此,本发明实施例提供的排版引擎,通过获取用户在网页的可编辑区域输入的编辑指令,当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度,根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版,实现了在网页上进行文本编辑和自动排版。
[0075]显然,本领域技术人员应该明白,上述的本发明的各模块或各步骤可以通过如上所述的通信终端实施。可选地,本发明实施例可以用计算机装置可执行的程序来实现,从而可以将它们存储在存储装置中由处理器来执行,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等;或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
[0076]以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种排版方法,其特征在于,所述方法包括: 获取用户在网页的可编辑区域输入的编辑指令; 当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度; 根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版。
2.根据权利要求1所述的排版方法,其特征在于,所述接收用户在网页的第一编辑区域的输入信息之前,还包括: 在网页上创建所述可编辑区域,所述网页上至少包括一个所述可编辑区域。
3.根据权利要求1或2所述的排版方法,其特征在于,所述获取用户在网页的可编辑区域输入的编辑指令,包括: 监控用户的键盘按键操作,根据所述键盘按键操作获取与所述键盘按键相对应的编辑指令,所述编辑指令包括增加指令、删除指令和移动指令,其中,所述增加指令和删除指令都需要触发排版,所述移动指令不需要触发排版。
4.根据权利要求3所述的排版方法,其特征在于,所述当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度,包括: 当所述编辑指令为增加指令时,则执行所述增加指令,并计算所述增加后的用户输入信息的宽度和高度;当所述编辑指令为删除指令时,则执行所述删除指令,并计算所述删除后的用户输入信息的宽度和高度。
5.根据权利要求1至4任一项所述的排版方法,其特征在于,所述根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版,包括: 当所述用户输入信息的宽度超过所述可编辑区域的宽度时,则在所述可编辑区域内进行换行显示; 当所述用户输入信息的高度大于所述可编辑区域的高度时,对所述用户输入信息进行顺延排版;当所述用户输入信息的高度小于所述可编辑区域的高度时,对所述用户输入信息进行递补排版。
6.根据权利要求5所述的排版方法,其特征在于,所述当所述用户输入信息的高度大于所述可编辑区域的高度时,对所述用户输入信息进行顺延排版;当所述用户输入信息的高度小于所述可编辑区域的高度时,对所述用户输入信息进行递补排版,包括: 当所述用户输入信息的高度大于所述可编辑区域的高度时,计算超出所述可编辑区域的高度的输入信息,并将所述超出的输入信息顺延至下一个可编辑区域的首位置;当所述用户输入信息的高度小于所述可编辑区域的高度时,计算所述可编辑区域的剩余区域,并将下一个可编辑区域的首位置的输入信息递补到所述剩余区域。
7.一种排版引擎,其特征在于,所述排版引擎包括: 获取单元,用于获取用户在网页的可编辑区域输入的编辑指令; 计算单元,用于当所述编辑指令为需要触发排版的指令时,则执行所述编辑指令,并计算所述编辑后的用户输入信息的宽度和高度;排版单元,用于根据所述用户输入信息的宽度和高度、以及所述可编辑区域的宽度和高度对所述用户输入信息进行排版。
8.根据权利要求7所述的排版引擎,其特征在于,所述排版引擎还包括: 创建单元,用于在网页上创建所述可编辑区域,所述网页上至少包括一个所述可编辑区域。
9.根据权利要求7或8所述的排版引擎,其特征在于,所述获取单元还用于监控用户的键盘按键操作,根据所述键盘按键操作获取与所述键盘按键相对应的编辑指令,所述编辑指令包括增加指令、删除指令和移动指令,其中,所述增加指令和删除指令都需要触发排版,所述移动指令不需要触发排版; 以及,所述计算单元还用于当所述编辑指令为增加指令时,则执行所述增加指令,并计算所述增加后的用户输入信息的宽度和高度;当所述编辑指令为删除指令时,则执行所述删除指令,并计算所 述删除后的用户输入信息的宽度和高度。
10.根据权利要求7至9任一项所述的排版引擎,其特征在于,所述排版单元还用于当所述用户输入信息的宽度超过所述可编辑区域的宽度时,则在所述可编辑区域内进行换行显示;当所述用户输入信息的高度大于所述可编辑区域的高度时,对所述用户输入信息进行顺延排版;当所述用户输入信息的高度小于所述可编辑区域的高度时,对所述用户输入信息进行递补排版;其中,所述顺延排版为当所述用户输入信息的高度大于所述可编辑区域的高度时,计算超出所述可编辑区域的高度的输入信息,并将所述超出的输入信息顺延至下一个可编辑区域的首位置;所述递补排版为当所述用户输入信息的高度小于所述可编辑区域的高度时,计算所述可编辑区域的剩余区域,并将下一个可编辑区域的首位置的输入信息递补到所述剩余区域。
【文档编号】G06F17/25GK103838709SQ201410079135
【公开日】2014年6月4日 申请日期:2014年3月5日 优先权日:2014年3月5日
【发明者】常哲 申请人:天闻数媒科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1