具体实施方式
出版程序可以在编辑或创建文档时对可能的设计问题提供连续和实时的反馈。反馈可以包括显示包含可能由文档中当前的编辑或创建导致的任何设计问题的实时列表的用户接口。
典型操作环境
将在下文中参考附图说明本发明的典型实施例,其中类似的标号在几个附图中表示类似的元件。图1A为方框图,展示用于实现本发明的各种实施例的典型操作环境。典型操作环境100包括形式为常规个人计算机120的通用计算设备。通常,个人计算机120包括处理单元121、系统存储器122,及连接包括系统存储器122到处理单元121的各种系统组件的系统总线123。系统总线123可以为几种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围设备总线,及使用多种总线结构中的任何一种的本地总线。系统存储包括只读存储器(ROM)124和随机访问存储器(RAM)125。包含基本的例程以帮助在个人计算机120的元件之间传输信息,如在启动过程中的基本输入/输出系统126(BIOS)存储在ROM 124中。
个人计算机120进一步包括读写硬盘(未标出)的硬盘驱动器127、读写可移动磁盘129的磁盘驱动器128、读写如CD-ROM或其他光学媒体这样的可移动光盘131的光盘驱动器130。硬盘驱动器127、磁盘驱动器128和光盘驱动器130相应地通过硬盘驱动器接口132、磁盘驱动器接口133,和光学驱动器接口134与系统总线123连接。
虽然在此说明的典型环境中使用硬盘127、可移动磁盘129,及可移动光盘131,熟悉技术的人应理解,也可以在例子操作环境中使用其他类型的可以用来存储能够由计算机访问的数据的计算机可读媒体,如盒式磁带、闪存卡、数字视频盘、伯努利盒式磁带、RAM、ROM等等。驱动器及与它们关联的计算机可读媒体对个人计算机120提供计算机可执行指令、数据结构、程序模块或其他数据的非易失存储。
可以在硬盘127、磁盘129、光盘131、ROM 124或RAM 125上存储多个程序模块,包括操作系统135、表格处理程序136、数据库程序137,及文档编辑程序138。程序模块包括执行特殊任务或实现特殊抽象数据类型的例程、子程序、程序、对象、组件、数据结构等等。可以实现本发明的各方面以用出版程序138创建电子文档。
用户可以通过如键盘140和定点设备142这样的输入设备输入命令和信息到个人计算机120中。定点设备可以包括鼠标、轨迹球,及可与电子平板连接使用的电子笔。其他输入设备(未标出)包括麦克风、操纵杆、游戏垫、圆盘式卫星电视天线、扫描仪或类似设备。这些和其他输入设备通常通过连接到系统总线123的串行端口接口146连接到处理单元121,但也可以通过其他接口,如并行口、游戏口,或通用串行总线(USB)来连接。显示设备147或其他显示设备也通过接口,如视频适配器148与系统总线123连接。除显示器147外,个人计算机通常包括其他外围输出设备(未标出),如扬声器和打印机。
个人计算机120可以使用到一个或多个远程计算机149的逻辑连接在连网环境中运行。远程计算机149可以是个人计算机、服务器、客户机、路由器、网络PC、对等设备或其他普通网络节点。虽然远程计算机149通常包括多个或所有上述相对于个人计算机120说明的元件,在图1中只展示了存储器存储设备150。图1中所示逻辑连接包括局域网(LAN)151和广域网(WAN)152。这样的连网环境在办公室范围或企业范围的计算机网络、企业内部互联网和因特网中是很常见的。
当用在LAN连网环境中时,个人计算机120通过网络接口或适配器153与局域网151相连。当用在WAN连环境中时,个人计算机120通常包括调制解调器154或其他在广域网152上建立通讯的方法。调制解调器154,可以为内置的或外置的,通过串行端口接口146连接到系统总线123。在连网环境中,相对于远程计算机149说明的程序模块155、156,或其部分,可以存储在远程存储器存储设备150中。应理解所示的网络连接是说明性的且可以使用在计算机之间建立通讯连接的其他方法。
再者,熟悉技术的人应理解,本发明可以实现在其他计算机系统配置中,包括手持设备、多处理器系统、基于微处理器的或可编程的消费者电子产品、网络个人计算机、小型机、大型机等等。本发明也可以实现在分布式计算环境中,在其中任务由通过通讯网络连接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备。
用户接口的典型显示
参考图1B,展示用户接口100,用户接口100包括可能由电子文档中当前的编辑或创建导致的潜在的设计问题104A、104B、104C和104D的实时列表102。虽然用户接口100包括可以显示在计算机屏幕上的可视对象,熟悉技术的人应理解本发明的实时反馈并不限于信息的可视显示。实时反馈可以包括声音、语音合成、触觉显示,及和用户进行的其他形式的交互通讯。
在图1B中展示的典型实施例中,设计问题实时列表102的第一项104A可以包括说明“页1上的文本框为空”的消息。第一项104A,及余下的项104B、104C、104D可以由用户选择。对正被查看的当前电子文档,列表102是被评估的电子文档的可能的设计问题的完整列表。当问题列表102超过了窗口或用户接口100的大小,可以使用滚动按钮106在问题列表102中滚动。
如上所述,本发明的优点是可能的出版设计问题104的列表102可以在用户创建或编辑电子文档时的任何时候由用户浏览。用户接口100的这个可浏览能力页允许随机选择设计问题104。用户可以决定他或她何时需要修正显示在列表102中的特殊设计问题104。同样,如可以在由用户接口100显示的问题104的列表102中看出,可以确定显示在列表102中的问题之间的关系。
现参考图1C,显示菜单108以响应选择可能的设计出版问题104的第一项104A。菜单108可以包括多个选项110。第一个选项110A可以包括浏览识别出的特殊问题的命令。第二个选项110B可以包括自动修正特性,其中系统自动地修正在列表102中的已识别的问题104A。第三个选项110C可以包括在当前电子文档中不再检查此类型的问题的命令。及第四个选项可以包括显示解释从列表102中选择的问题的本质和类型的文本的命令。如图1C进一步强调,用户接口100是交互的并且允许用户对在编辑或创建电子文档时同时运行的文档检查处理有显著的控制。
现参考图1D,邻接用户接口100显示包含空的文本框114的电子文档112。显示电子文档112以响应选择图1C中展示的菜单108的第一个选项110A(浏览到选择的问题)。用圆形标记114A高亮显示文本框114以集中用户的注意到潜在的设计问题上。本发明不仅限于圆形标记114A、114B。可以用除圆形标记114A、114B之外的显示机制的任何变体使潜在的设计问题更加明显,如用不同的颜色高亮显示问题、让问题周围的边框线闪烁,及通过其他通讯方式,如声音、语音合成,及吸参考户的注意到潜在的出版问题的其他方法向用户传达问题。
现参考图1E,它展示用户修正选择的问题之后的用户接口104及电子文档112。如用户接口100所示,图标116改变相对于图标原来在图1D中所示的状态。特别地,图1E所示的图标116已改变为显示“打勾”标记来向用户指示第一个问题104A已被解决。然而,如上所述,本发明并不仅限于电子文档中的问题如何被识别或修正的可视显示。除了或替换地改变图标116,可以通过播放声音、激活语音合成,或以其他方式和用户通讯来通知用户问题已被解决以使得他们知道问题104A已被修正。
现参考图1F,用户接口100显示可以在电子文档中运行或使用以确定出版设计问题是否出现在电子文档中的检查116的典型列表。用户接口100的这个窗口允许选择和取消选择可以在电子文档中运行或使用的检查。典型检查可以包括,但不仅限于,确定页眉上是否存在过多的空白、对象是否和页分离、对象是否在页上可视、对象是否有不正确的颜色,或对象是否在页上不合比例,及一个对象是否覆盖页上的另一个对象。图1F包括附加的检查。然而,本发明不仅限于上述检查或图1中所示的检查。对可能的出版问题的其他检查并非在本发明的范围和精神之外。
现参考图1G,该显示展示用户接口100包括用于实施检查列表102的显示选项118(未在此图中展示)。图1G中展示的用户接口100进一步包括允许用户选择应对可能的设计出版问题检查电子文档的哪些特殊页的页范围选项119。
例子结构
现参考图2A,它展示交互以提供检查本发明的最终出版设计问题的系统和方法的软件元件。本发明可以包括实现在此所述并在典型结构图和后附的流程图中展示的功能的多个计算机程序或单个计算机程序。
然而,很明显可以有很多不同的方法以计算机编程实现本发明,且本发明不应被视为限制于任何一组计算机程序指令。例如,进一步来说,熟练的程序员能够基于申请的文本中的典型结构和流程图及相关说明没有困难地写出这样的计算机程序来实现所揭示的发明。因此,揭示一组特殊的程序代码指令不必视为足够的理解如何实现和使用本发明。将在下面的说明及用余下的展示功能和程序流程的图中更详细地说明所请求的计算机程序创新的功能。
系统200可以包括事件管理器202、设计检查器210、一个或多个问题检查器212(A)、212(B)、212(C),及用于显示设计问题列表102的用户接口100。事件管理器202可以包括监控在电子文档112内做出的用户动作204的程序模块。用户动作204可以作为独立的事件存储在事件列表中。在完整的用户动作204之后,事件管理器202可以从事件列表中过滤出重复的事件。
例如,如果用户在一行中移动对象10次,10个事件将被存储在事件队列206中的事件列表中。特别地,事件管理器202可以从事件列表中过滤出重复的事件。然后事件管理器可以传送在事件队列206中过滤出的事件列表到设计检查器210。
熟悉技术的人应理解用户动作204可以包括很多不同的与计算机通讯的形式。用户动作可以包括,但不仅限于,移动对象、调整对象大小、更改对象的颜色、更改电子文档的文本或背景的颜色、从一组特定的颜色转到另一组特定的颜色(如从RGB转到CMYK颜色)、语音命令、触针或笔在显示上激活、从触摸屏接收输入,及用户可以执行以改变电子文档的任何其他类型的动作。
事件队列206,包括事件列表,可以传送到可能出现在文档出版程序中的其他程序模块208。对一些程序模块208,事件队列不能由事件管理器202过滤。其他程序模块可以包括,但不仅限于图形管理器,及其他文档出版程序模块。事件管理器202特别地过滤事件队列206内去往设计检查器210的数据。
设计检查器210可以包括从由事件管理器202发送的事件队列206接收过滤的事件列表的程序模块。设计检查器210可以进一步处理事件列表。事件列表的处理通常发生在系统的空闲时间。换句话说,空闲时间包括当用户未输入数据或激活出版系统的任何命令的时间。
基本上,本发明向用户提供潜在的出版设计问题的实时反馈类似于字处理程序在用户未和字处理程序的电子文档交互的期间连续地检查文档的拼写那样。使用空闲时间来检查文档的一个目标是不打断用户。另一个目标是在有空闲CPU周期时运行检查。
设计检查器可以从和电子文档的出版不相关的事件列表中过滤出事件。换句话说,设计检查器可以相关于由事件管理器202执行的第一次过滤对事件列表进行第二次过滤。
简单地参考图2B,该图包括存储在事件队列206中的事件数据的一项220。事件数据项220可以包括事件标识符220(A)、对象标识符220(B),及事件特定信息220(C)。事件特定信息220(C)可以包括附加信息,如对事件发生了什么。例如,事件特定信息220(C)可以说明在发生用户事件的页上的改变的位置。
回过来参考图2A,设计检查器210页可以用潜在的问题映射到事件列表中余下的事件以构成运行在电子文档112上的检查218的列表216(如图2C展示)。
简单地参考图2C,该图展示运行在电子文档上的检查218的列表216。可以创建检查218的这个列表216来响应设计检查器210映射事件列表中的事件到检查列表。下面将参考图(5)更详细地说明发生在事件到检查对照表中的映射处理的进一步细节。
再次参考图2A,设计检查器210可以从检查列表216中过滤出重复的检查218,且设计检查器210也可以从检查列表216中过滤出可能已由当前评估的事件解决的检查218。例如,如果用户删除了可能导致设计出版问题的对象,那么设计检查器可以在删除该对象之前去除任何与该对象关联的检查218。
设计检查器210可以转发单个检查205(A)、205(B)及205(C)到一个或多个问题检查器212(A)、212(B)、212(C)。在接收来自问题检查器212的任何反馈214(A)、214(B)、214(C)之后,作为问题检查器处理的结果,设计检查器210可以构建在电子文档112中已识别的设计问题的列表102。设计检查器可以转发设计问题的这个列表102到用户接口100以显示并和用户交互。
每个问题检查器212可以包括可以执行从设计检查器210接收的检查查询的一个或多个程序模块。检查可以包括确定电子文档中的特殊对象或页是否有特殊的出版设计问题。问题检查器212可以发回关于文档中的特殊对象、一组对象,或页是否有设计出版问题的信息到设计检查器210。
用户接口210与设计检查器210通讯。用户接口100可以包括从设计检查器接收设计问题列表102并在显示设备上显示问题列表102的一个或多个程序模块。用户接口100可以接收特定于显示的特殊问题104的用户输入。这样的输入可以包括显示并修正选择的问题104的请求。用户接口100也可以在菜单108中如所列的那样显示如何修正显示的问题列表102中选择的设计问题104的选项。
如上所述,用户接口100不仅限于和用户可视地交互。用户接口100可以使用声音、语音合成、触摸显示,及其他传感或通讯设备来和用户交互并警示用户潜在的设计问题。
监控和修正文档的设计出版问题的典型方法
现参考图3A和3B,这些图展示修正出版问题的典型处理300的总体逻辑流图。应注意,下述处理中的特定步骤必须确定地在其他步骤之前以使本发明按所述方式工作。
然而,本发明不仅限于步骤的所述顺序,如果这样的顺序或序列并不改变本发明的功能。即,应理解一些步骤可以在其他步骤之前或之后执行或与其他步骤并行执行而不偏离本发明的范围和精神。
判别步骤303是典型处理300的第一个步骤。在判别步骤303,确定是否是第一次执行该方法。如果对判别步骤的询问是否定的,那么沿“否”分支到页标记A再到将处理带到步骤341的图3(B)。如果对判别步骤303的询问是肯定的,那么沿“是”分支到步骤306。在步骤306,设计检查器210可以接收电子文档112中的对象的定义或说明。电子文档中的对象的说明可以由出版程序或文档编辑程序产生。
在步骤309,可以自动地确定电子文档的输出类型。例如,设计检查器210可以基于电子文档112内用户的选项选择确定电子文档是发往商业印刷、Web出版、桌面出版,还是其他类似的输出形式。然而,在另一个替换典型实施例中,可以停用或不提供自动检测文档输出类型以使得用户手动地对电子文档选择输出类型。
在步骤312,可以访问取决于选择的输出类型对当前电子文档应用的检查列表。接下来,在步骤315,设计检查器210可以基于已被选择的选项确定用户是否已标记特定的检查而跳过它们,如图1F所示在用户接口的选项列表116中那样。
在步骤318,设计检查器210对电子文档112中的所有对象和页执行检查。特别地,设计检查器210转发所有的检查到一个或多个问题检查器212。
在步骤321,如果对由问题检查器212执行的一个或多个检查的询问是肯定的(指问题确实存在于当前电子文档中),那么设计检查器210生成出版问题列表102。接下来,在步骤323,用户接口100显示出版问题列表102。
在判别步骤326,用户接口100确定是否选中了一个显示问题104。如果对判别步骤326的询问是否定的,那么沿“否”分支到将处理带到图3(B)的步骤341的页连接器A。
如果对判别步骤326的询问是肯定的,那么沿“是”分支到步骤329,在其中对选中的问题104(A)显示选项110。接下来,在判别步骤332,用户接口100确定是否对问题104(A)选择了一个选项110(A)。如果对判别步骤332的询问是否定的,那么沿“否”分支到判别步骤338。如果对判别步骤332的询问是肯定的,那么沿“是”分支到步骤335,在其中执行选择的选项。例如,如果选中了命令“转到此项”,那么将邻接于问题104的列表102显示包含选择的问题104(A)的页。在此,处理继续到图3(B)的步骤341。
现参考图3(B),该图展示处理300修正电子文档112内的出版问题的另一部分。应注意步骤326到338可以相对于图3(B)的步骤341到380并行运行。即,当用户选择了用户接口100时,处理回到步骤326以使得用户可以修正任何标识出的出版问题。
在步骤341,当用户已选择在电子出版112之内工作,电子文档112内的用户动作由事件管理器202监控。在步骤344,事件管理器识别用户动作的成分并将成分作为独立的事件存储在事件队列206的事件列表中。
在判别步骤347,事件管理器202确定是否发生了完整的用户动作结束。如果对判别步骤347的询问是否定的,那么沿“否”分支回到步骤341。如果对判别步骤347的询问是肯定的,那么沿“是”分支到步骤350。
在步骤350,事件管理器202可以在事件队列206的事件列表中过滤出重复的事件。在判别步骤353,设计检查器210可以确定系统是否空闲。如果对判别步骤353的询问是否定的,那么沿“否”分支回到步骤341。如果对判别步骤353的询问是肯定的,那么沿“是”分支到步骤356,在其中设计检查器210可以过滤出和从事件管理器202接收的事件队列206中的事件列表出版不相关的事件。
在步骤359,设计检查器210可以过滤出包括已被删除的对象的检查。在例程362中,设计检查器210可以通过使用事件到检查对照表500映射事件和关联的潜在的出版问题(如图5所示)。将在下面参考图5说明例程362的进一步细节。在映射事件和关联的潜在的出版问题之后,设计检查器210可以构建或增加到运行在文档上的检查的列表216。
在步骤368,设计检查器210可以进一步从将运行的检查的列表216中过滤出重复的检查。在判别步骤374,设计检查器210可以确定系统是否仍然空闲。应注意判别步骤374可以并行于由设计检查器210执行的所有步骤运行。换句话说,在用户与电子文档交互时,可以停止或暂停步骤341之后的任何步骤。如果对判别步骤374的询问是否定的,那么沿“否”分支进行,其中处理回到步骤341。如果对判别步骤374的询问是肯定的,那么沿“是”分支到例程377。
在例程377,运行在文档上的检查的列表216中的每个检查由相应的问题检查器212执行。将在下面参考图6说明例程377的进一步细节。
在步骤380,设计检查器210可以构建或增加问题到出版问题列表102以响应问题检查器212执行检查。然后处理返回到步骤323。
现参考图4,该图展示映射事件到电子文档中潜在的出版问题的典型子方法或例程362。步骤403是子方法中的第一个步骤并且包括对每个事件识别和对照表500中的事件关联的所有可能的出版问题。
接下来,在步骤406,对当前评估的事件确定当前评估的事件是否修正原先识别的出版问题。如果对判别步骤406的询问是肯定的,那么沿“是”分支到步骤409,在其中设计检查器210从运行在电子文档上的检查的列表216中去除检查218。如果对判别步骤406的询问是否定的,那么沿“否”分支到步骤412,在其中问题被加到对当前电子文档112运行的检查218的列表216。
接下来,在判别步骤415,设计检查器210确定是否已复查所有的事件及关联的问题。如果多判别步骤415的询问是否定的,那么沿“否”分支回到判别步骤406。如果对判别步骤415的询问是肯定的,那么沿“是”分支到步骤418,在其中处理在步骤362返回图3(B)。
现参考图5,该图展示由设计检查器210使用的典型的事件到检查对照表500。该表的一个轴包括事件类型的列表,而另一个轴包括潜在的出版问题的列表。当设计检查器210遍历映射表500时,它创建检查的列表,其中单个检查被发送到相应的问题检查器212。如表500所示,事件类型,如事件类型1号,可以有多个问题与其相关。
例如,如果事件类型为电子文档112中在页上的对象的移动,可能的出版问题可以包括下述:对象可能已被移出该页、对象可能被移动以至于在页眉上存在更多空白、被移动的对象可能隐藏或覆盖页上的另一个对象,及可以和页上对象的移动关联的其他类似问题。本发明不仅限于上述事件类型的例子。包括在电子文档中编辑或创建信息这样的其他事件类型并不超出本发明的范围和精神。
现参考图6,该图展示用于在电子文档上运行检查的典型子方法377。判别步骤603是子方法的第一个步骤,在其中确定系统是否空闲。类似于步骤374,应注意判别步骤603可以并行于由设计检查器210执行的所有步骤运行。换句话说,在用户与文档交互时,可以停止或暂停子方法377中在步骤603之后的任何步骤。如果对判别步骤603的询问是否定的,那么沿“否”分支到步骤615,在其中处理返回到图3B的步骤341。如果对判别步骤603的询问是肯定的,那么沿“是”分支到判别步骤606。
在判别步骤606,问题检查器212确定当前的问题是否存在于问题列表102中。如果对判别步骤606的询问是肯定的,那么沿“是”分支到判别步骤616。如果对判别步骤606的询问是否定的,那么沿“否”分支到判别步骤609。
在判别步骤609,容量检查器212(译者注:疑为问题检查器212)确定评估的事件是否导致出版问题。如果对判别步骤609的询问是肯定的,那么沿“是”分支到612,在其中问题由问题检查器212标记以包含到出版问题列表102中。如果对判别步骤609的询问是否定的,那么沿“否”分支到判别步骤627。
在判别步骤616,问题检查器212确定和当前问题关联的事件是否修正了该问题。如果对判别步骤616的询问是肯定的,那么沿“是”分支到步骤621,在其中问题检查器212通知设计检查器310从列表102中去除该问题。如果对判别步骤616的询问是否定的,那么沿“否”分支到步骤624,在其中问题检查器212标记该问题留在出版问题列表102中。
在判别步骤627,设计检查器210确定是否需要在当前电子文档上运行更多的检查。如果对步骤627的询问是肯定的,那么沿“是”分支回答判别步骤603。如果对判别步骤627的询问是否定的,那么沿“否”分支到步骤628,在其中处理返回图3(B)的步骤362。
替换实施例
如上所述,虽然本发明如图所示仅说明了可视显示,属性技术的人应理解和用户进行其他形式的通讯并不在本发明的范围和精神之外。例如,本发明可以警示用户潜在的设计出版问题通过产生声音、语音合成、触摸显示,甚至气味或口味。类似地,相对于电子文档的用户动作不止包括鼠标或键盘输入。用户动作可以进一步包括语音命令、笔和屏幕动作、触摸屏动作,及其他类似的用户动作。
本发明提供交互的并且允许用户在文档检查处理中有一定控制的检查并解决出版设计问题的系统和方法。本发明也提供可以在编辑或创建文档时对可能的设计问题提供连续和实时反馈的文档检查处理。
进一步来说,本发明也提供识别电子文档的所有问题并识别可能出现在电子文档中的问题的类型的文档检查处理。本发明的文档检查处理与出版程序集成以使得向用户提供自动修正特定的重现问题的选项。本发明的文档检查处理在创建或编辑电子文档时易于使用和管理。
应理解上述说明仅涉及本发明的示意性实施例,且可以对其做出大量的更改而不偏离如下面的权利要求所定义的本发明的精神和范围。