Высокоточное отображение документов в клиентах просмотра
Иллюстрации
Показать всеИзобретение относится к инструментам и технологиям для высокоточного отображения документов в клиентах просмотра. Техническим результатом является расширение функциональных возможностей отображения документов за счет автоматического предоставления данных для просмотра клиенту в зависимости от его аппаратных возможностей. Способы, обеспеченные этими инструментами и технологиями, могут обнаруживать, имеет ли клиентская система подключаемый программный модуль, установленный для отображения содержимого с высокой точностью, в ответ на обнаружение, что данная клиентская система имеет установленный подключаемый программный модуль отображения, эти способы могут выбрать первый формат высокой точности, совместимый с упомянутым подключаемым программным модулем, для отображения содержимого на клиентской системе. Однако в ответ на обнаружение того, что данная клиентская система не имеет установленного подключаемого программного модуля отображения, данные способы могут выбрать второй формат высокой точности для отображения содержимого на клиентской системе без установки упомянутого подключаемого программного модуля на клиентской системе. 3 н. и 17 з.п. ф-лы, 8 ил.
Реферат
ОПИСАНИЕ ПРЕДШЕСТВУЮЩЕГО УРОВНЯ ТЕХНИКИ
Пользователи, работающие в различных окружениях, могут хотеть обращаться к любому числу различных документов, которые могут соответствовать различным приложениям. По предшествующим технологиям, если пользователь хотел открыть упомянутый документ, то упомянутый пользователь должен был установить на клиентской системе соответствующее приложение, а затем открыть в нем упомянутый документ. По более современным технологиям на клиентской системе можно установить клиенты просмотра (например, обозреватели), и данные клиенты могут позволить пользователям интерактивно просматривать документы. Однако данные программы просмотра могут обеспечивать относительно невысокую точность представления интерактивных документов, а общее взаимодействие с пользователем при работе с упомянутым клиентом просмотра может значительно отличаться по сравнению с работой в полнофункциональном приложении. Например, некоторые форматирования, поддерживаемые полным приложением, могут не переноситься посредством клиента просмотра, и содержимое, отображаемое в клиенте просмотра, может выглядеть иначе, чем содержимое, отображаемое в полном приложении.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Описаны инструменты и технологии для высокоточного отображения документов в клиентах просмотра. Способы, обеспечиваемые данными инструментами и технологиями, могут обнаруживать, имеется ли в клиентской системе подключаемый программный модуль, установленный для отображения содержимого с высокой точностью, в ответ на обнаружение того, что данная клиентская система имеет подключаемый программный модуль отображения, данные способы могут выбирать первый формат высокой точности, совместимый с упомянутым подключаемым программным модулем для отображения содержимого на клиентской системе. Однако в ответ на обнаружение того, что клиентская система не имеет установленных подключаемых программных модулей отображения, данные способы могут выбрать второй формат высокой точности для отображения упомянутого содержимого на клиентской системе без установки упомянутого подключаемого программного модуля на данной клиентской системе.
Описанные выше основные положения также можно реализовать как способ, компьютеризированное устройство, компьютерный процесс, вычислительное устройство или как готовое изделие, такое как машиночитаемый носитель. Эти и другие различные признаки будут очевидны из прочтения нижеследующего подробного описания и обзора соответствующих чертежей.
Данная сущность изобретения предоставлена для представления в упрощенной форме выбора идей, которые будут дополнительно описаны ниже в подробном описании. Данная сущность изобретения не предназначена для определения ключевых признаков или существенных признаков формулы изобретения, данная сущность изобретения также не предназначена для ограничения объема формулы изобретения. Более того, формула изобретения не ограничивается реализациями, которые устраняют один или несколько недостатков, отмеченных в любой части данного описания изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На фигуре 1 приведена объединенная функциональная схема и блок-схема, иллюстрирующие системы или операционные среды, позволяющие высокоточное отображение документов в клиентах просмотра.
На фигуре 2 показана блок-схема, иллюстрирующая процессы, посредством которых клиентские системы или системы могут запрашивать конкретные документы для высокоточного отображения на подобных устройствах.
На фигуре 3 показана блок-схема, иллюстрирующая процессы, продолжающие процессы, показанные на фигуре 2.
На фигуре 4 показана блок-схема, иллюстрирующая процессы, продолжающие процессы, показанные на фигуре 3.
На фигуре 5 показана блок-схема, иллюстрирующая процессы для форматирования страниц для программ просмотра на стороне клиента.
На фигуре 6 показана блок-схема, иллюстрирующая процессы для ответа на пользовательские выборы содержимого, как предусмотрено для программ просмотра на стороне клиента.
На фигуре 7 показана блок-схема, иллюстрирующая процессы для ответа на дополнительные команды пользователя.
На фигуре 8 показана блок-схема, иллюстрирующая процессы, посредством которых подсистема просмотра на стороне клиента может позволить клиентской системе проводить поиск в содержимом, расположенном удаленно от данной клиентской системы.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Нижеследующее подробное описание направлено на технологии для высокоточного отображения документов в клиентах подсистемы просмотра. Хотя объект изобретения, описанный в настоящем документе, представлен в общем контексте программных модулей, которые исполняются в сочетании с выполнением операционной системы и программных приложений на компьютерной системе, специалисты в данной области техники признают, что другие реализации можно совершить в сочетании с другими видами программных модулей. Как правило, программные модули включают в себя подпрограммы, программы, компоненты, структуры данных и другие виды структур, которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Более того, специалисты в данной области техники оценят, что объект изобретения, описанный в настоящем документе, можно применить с другими конфигурациями компьютерных систем, включая в себя портативные устройства, мультипроцессорные системы, микропроцессорную или программируемую бытовую электронную технику, миникомпьютеры, универсальные ЭВМ и тому подобное.
В нижеследующем подробном описании сделаны ссылки на соответствующие чертежи, которые составляют часть данного документа и на которых в качестве иллюстрации показаны конкретные варианты осуществления или примеры. Итак, со ссылкой на данные чертежи, на которых одинаковые числа символизируют одинаковые элементы на протяжении нескольких фигур, далее будут описаны аспекты инструментов и технологий для высокоточного отображения документов в клиентах подсистемы просмотра.
На фигуре 1 показаны системы или операционные среды, обозначаемые в целом как пункт 100, которые позволяют высокоточное отображение документов в клиентах просмотра. Эти системы 100 могут включать в себя одну или несколько клиентских систем 102, которые позволяют одному или нескольким пользователям 104 выдавать соответствующие команды 106 для загрузки документов в одну или несколько серверных систем 108. На фигуре 1 предоставлен пример, включающий в себя одного пользователя, одну клиентскую систему и одну серверную систему только для ясности и иллюстрации. Однако варианты реализации данного изобретения могут включать в себя любое число пользователей, клиентских систем и серверных систем.
Клиентские системы 102 и их серверные системы 108 могут обмениваться данными посредством одной или нескольких промежуточных сетей 110 связи. Эти сети по своему характеру могут быть глобальными, региональными, местными или персональными и могут применять различные протоколы, целесообразные в различных вариантах реализации.
Графические элементы, использованные на фигуре 1 для обозначения клиентских систем и серверных систем, выбраны только для облегчения иллюстрации и не ограничивают возможные варианты реализации данного изобретения. Более конкретно, на фигуре 1 показаны примеры, в которых серверная система 108 является централизованной компьютерной системой, возможно разделяемой более чем одной клиентской системой. Клиентская система 102 может представлять собой относительно стационарные настольные системы, также как мобильные компьютерные системы (например, компактные компьютеры, блокнотные компьютеры и другие виды портативных компьютерных систем). В дополнение к этому, клиентская система 102 может представлять собой карманные персональные компьютеры (PDA) с возможностями беспроводной передачи данных и установленными на них программными компонентами для выполнения различных инструментов и технологий, описанных в настоящем документе. Однако настоящее изобретение также предполагает и другие виды клиентских систем и серверных систем, включая в себя, но не ограничиваясь теми, что показаны на фигуре 1.
Обращаясь к клиентским системам 102 более подробно, данные клиентские системы могут включать в себя один или несколько процессоров 112, которые могут иметь определенный вид или архитектуру, выбранные в соответствии с определенными вариантами реализации. Процессоры 112 могут подключаться к одной или нескольким системам шин 114, выбранным для совместимости с данными процессорами 112.
Клиентские системы 102 также могут включать в себя один или несколько вариантов машиночитаемого носителя 116 данных, которые подключаются к системам шин 114. Данные системы шин могут позволять процессорам 112 считывать код и/или данные на/из машиночитаемого носителя 116 данных. Носитель 116 может представлять собой запоминающие устройства, реализованные с использованием любой подходящей технологии, включая в себя, но не ограничиваясь, полупроводники, магнитные материалы, оптические средства или что-либо в этом роде. Носитель 116 может включать в себя запоминающие устройства, которые классифицируются как ОЗУ, ПЗУ, флэш-память или другие виды, а также могут представлять собой накопители на жестких магнитных дисках.
Носитель 116 данных может содержать один или несколько модулей инструкций, которые, в случае загрузки в процессор 112 и исполнения, вызывают выполнение клиентской системой 102 различных технологий для высокоточного отображения документов в клиентах просмотра, как предназначено клиентским системам 102 в данном описании. Как подробно описано на протяжении всего данного описания, клиентские системы 102 и серверные системы 108 могут взаимодействовать для предоставления различных услуг, описанных в настоящем документе.
Машиночитаемый носитель 116 данных может содержать один или несколько модулей, предоставляющих программы 118 просмотра на стороне клиента. Данные программы 118 просмотра на стороне клиента могут включать в себя программное обеспечение обозревателя, улучшенное возможностями, описанными в настоящем документе, для поддержки нескольких высокоточных форматов при отображении содержания документов на клиентской системе. В некоторых отдельных случаях данные клиентские системы могут содержать подключаемое программное обеспечение, позволяющее программам просмотра отображать содержимое с высокой точностью на данном клиенте, используя данный формат отображения. Примеры подобного подключаемого программного обеспечения могут включать в себя мультимедийные технологии FLASH™, доступные от Adobe Systems, подключаемый программный модуль обозревателя SILVERLIGHT™, доступный от корпорации Microsoft, или другие подключаемые программные модули обозревателя, предлагающие похожие возможности.
В других отдельных случаях клиентская система может не содержать подобных подключаемых программных модулей. Несмотря на это, инструменты и технологии, предоставленные в настоящем описании, могут отображать содержание документа на клиентских системах с высокой точностью без установки подобных подключаемых программных модулей на клиентских системах. В этих последних сценариях клиентские системы могут использовать форматы растрового изображения (например, формат переносимой сетевой графики, или PNG, или другие подходящие форматы изображения, поддерживаемые доступными клиентами обозревателя).
Первоначально программа просмотра на стороне клиента может принять команду на загрузку одного или более документов на серверную систему 108 через сеть 110 передачи данных. На фигуре 1 загружаемый документ, передаваемый из клиентской системы на серверную систему, в целом обозначен пунктом 120.
Обращаясь более подробно к серверной системе 108, данные серверные системы могут включать в себя один или несколько процессоров 122, которые могут быть определенного вида или архитектуры, выбранной в соответствии с определенным вариантом реализации. Процессоры 122 могут иметь, а могут и не иметь ту же архитектуру, что и процессоры 112. Процессоры 122 могут подключаться к одной или нескольким системам шин 124, выбранным для совместимости с процессорами 122, и могут относиться или не относиться к тому же виду или архитектуре, что и системы шин 114.
Серверные системы 108 могут также включать в себя один или несколько вариантов машиночитаемого носителя 126 данных, подключаемых к системам шин 124. Данные системы шин могут позволять процессорам 122 считывать код и/или данные на/из машиночитаемого носителя 126 данных. Носитель 126 может представлять собой запоминающие устройства, реализованные с использованием любой подходящей технологии, включая в себя, но не ограничиваясь, полупроводники, магнитные материалы, оптические средства или что-либо в этом роде. Носитель 126 может включать в себя запоминающие устройства, которые классифицируются как ОЗУ, ПЗУ, флэш-память или другие виды, а также могут представлять собой накопители на жестких магнитных дисках.
Носитель 126 данных может содержать один или несколько модулей инструкций, которые, в случае загрузки в процессор 122 и исполнения, вызывают выполнение клиентской системой 108 различных технологий для высокоточного отображения документов в клиентах просмотра, как предназначено серверным системам 108 в данном описании. Как подробно описано на протяжении всего данного описания, клиентские системы 102 и серверные системы 108 могут взаимодействовать для предоставления различных услуг, описанных в настоящем документе.
Машиночитаемый носитель 126 данных может содержать один или несколько модулей стороны сервера, обеспечивающих предварительный просмотр документа и поисковые услуги, обычно обозначаемые пунктом 128. Первоначально данные услуги 128 могут сохранять загруженный документ 120 в хранилище 130 документов для последующей ссылки пользователем 104 или другими, не показанными, пользователями. На фигуре 1 упомянутый документ обозначен как загруженный в хранилище документов в пункте 132. Хранилище 130 документов может хранить множество документов 134 в интересах ряда различных пользователей 104 и клиентских систем 102.
Документы 134 могут представлять собой документы, доступные для чтения ряду различных соответствующих приложений, будь то приложения, выполняющие электронную обработку текстов, анализ электронных таблиц, ведение базы данных, передачу почты или обмен данными, планирование и тому подобное. В некоторых случаях некоторые или все данные приложения можно объединять и продавать совместно. Например, корпорация Microsoft предлагает наборы подобных приложений под торговой маркой OFFICE®, но другие продавцы программного обеспечения могут предлагать другие наборы приложений, которые могут реализовать данное описание целиком или частично.
Как предоставлено более детально на протяжении этого описания, инструменты и технологии, предоставленные в настоящем документе, позволяют клиентским системам отображать, по меньшей мере, часть документов 134 с высокой точностью без запуска приложений, обычно используемых для открытия и редактирования этих документов. Констатируется, что термин "высокая точность" используется в настоящем документе для проведения отличия от термина "полная точность воспроизведения". Последний из двух терминов предполагает законченную 100% точность между тем, как документ выглядит, при открытии в соответствующем приложении, по сравнению с просмотром в программе 118 просмотра.
Для краткости описания и только для иллюстрации на фигуре 1 предоставлен пример, в котором один сервер принимает загруженный документ 120, а также преобразует упомянутый документ соответствующим образом для его отображения на клиентских системах. Однако отмечено, что эти варианты реализации этого описания могут включать в себя некоторое число различных серверов, которые выполняют соответственно назначенные функции. Например, первая группа из одного или нескольких серверов может принимать и сохранять загруженные документы в интересах ряда клиентских систем. Другая группа из одного или нескольких серверов может выполнять любые преобразования, подходящие для отображения этих документов на клиентских системах. Выражаясь иначе, сервер, принимающий загруженный документ, может не быть тем же самым сервером, который поддерживает отображение этого документа на клиентской системе.
Описав общие системы или операционные среды 100 на фигуре 1, пояснение теперь переходит к последовательности процессов, посредством которых клиентские системы могут запрашивать конкретные документы для высокоточного просмотра на данных клиентских системах. Это описание предоставлено здесь с фигурой 2.
На фигуре 2 показаны последовательности процессов, обозначенных в целом как пункт 200, посредством которых клиентские системы могут запрашивать конкретные документы для просмотра с высокой точностью на подобных устройствах. Для облегчения упоминаний и описания, но не с целью ограничения возможных вариантов реализации, на фигуру 2 могут переноситься некоторые элементы из предыдущих чертежей, помеченные теми же самыми номерами ссылок. Например, последовательность 200 процессов описана применительно к программе 118 просмотра на стороне клиента и услуге 128 предварительного просмотра документа и поиска на стороне сервера. Однако варианты реализации данного изобретения могут выполнять последовательности 200 процессов на других компонентах, не отклоняясь от объема и сущности данного изобретения.
Обращаясь к последовательностям 200 процессов более подробно, блок 202 в целом представляет собой запрос списка документов, доступных на серверной системе для поиска и просмотра. Например, клиентская система 102 может выполнять блок 202 в ответ на команду от пользователя 104. На фигуре 2 запрос списка документов обозначен пунктом 204.
На сервере блок 206 в целом представляет собой прием запроса на список документов. В свою очередь, услуга 128 поиска может соотнестись с хранилищем 130 документов и определить, какие документы 134 разрешены для доступа пользователю 104.
Блок 208 в целом представляет собой посылку клиентской системе образов доступных документов для представления в программе 118 просмотра на стороне клиента. Эти образы доступных документов в целом обозначены на фигуре 2 как пункт 210.
На клиентской системе блок 212 в целом представляет собой прием образов, доступных запрашивающему пользователю документов, хранящихся на серверной системе. В свою очередь, программа 118 просмотра на стороне клиента может представлять пользователю список этих доступных документов, как представлено в целом в блоке 214. Пользователь может обозревать список доступных документов и выбирать упомянутый документ для просмотра на клиентской системе, как представлено в целом блоком 216.
Для упрощения иллюстрации, но не с целью ограничения возможных вариантов реализации, последовательность 200 процессов продолжается на фигуре 3, как обозначено посредством межстраничной ссылки 218. Теперь рассмотрение продолжается фигурой 3.
На фигуре 3 показаны последовательности процесса, обозначенные в целом как пункт 300, которые, как обозначено межстраничной ссылкой 302, продолжают последовательности 200 процессов, показанные на фигуре 2. Программа 118 просмотра на стороне клиента и услуга 128 поиска и предварительного просмотра документов переходят на фигуру 3.
Блок 304 принятия решения в целом представляет собой оценку, имеет ли данная клиентская система установленный компонент подключаемого программного модуля для упомянутого формата высокой точности. Как описано выше, примеры таких подключаемых программных модулей могут включать в себя компоненты программного обеспечения, предлагаемые под торговыми марками FLASH™, SILVERLIGHT™, или другие компоненты, имеющие схожие возможности.
Из блока 304, если данная клиентская система имеет установленный компонент подключаемого программного модуля, последовательности 300 процессов могут следовать по ветке 306 "Да" в блок 308. Блок 308 представляет собой выбор формата, поддерживаемого подключаемым программным модулем для отображения содержимого на клиентской системе для представления посредством программы 118 просмотра на стороне клиента.
Возвращаясь к блоку 304 принятия решения, если данная система не имеет установленного компонента подключаемого программного модуля, то последовательности 400 процессов могут следовать по ветке 310 "Нет" в блок 312. Блок 312 в целом представляет собой выбор формата изображения для отображения содержания документа с высокой точностью на клиентской системе. Вышеприведенное обсуждение предоставляет пример использования формата изображения PNG; однако в различных вариантах реализации могут быть подходящими другие форматы изображения. Например, если большая часть содержания данной страницы является изображением, то эту конкретную страницу можно отобразить как изображение в формате JPG для обеспечения более высокого качества изображения и более высокого коэффициента сжатия.
Блок 314 в целом представляет собой запрос предварительного просмотра документа, выбранного в блоке 216. Блок 314 может включать в себя запрос на представление предварительного просмотра документа в формате, определенном блоком 304 принятия решения. На фигуре 3 в пункте 316 в целом представлен запрос выбранного документа вместе с обозначением формата, поддерживаемого клиентской системой.
На серверной системе блок 318 в целом представляет собой прием запроса 316 на выбранный документ. Блок 318 может включать в себя прием обозначения формата, поддерживаемого клиентской системой.
Блок 320 в целом представляет собой извлечение выбранного документа в ответ на запрос 316. Блок 320 может включать в себя извлечение запрашиваемого документа из хранилища документов (например, 130 на фигуре 1).
Блок 322 в целом представляет собой форматирование страниц в запрашиваемом документе соответствующим образом для клиента просмотра. Например, блок 322 может содержать преобразование или отображение страниц в представление в виде изображения, или представление XAML. Например, этот процесс преобразования может включать в себя использование файлов .dll, разделяемых с клиентским приложением, чтобы загрузить и/или прочитать страницы документа, разбить содержание документа на страницы, кадры или другие удобные представления. Преобразование также может включать в себя выполнение эмуляции процесса печати в расширенном формате метафайла (например, EMF, как более подробно описано ниже) и использование упомянутого EMF для страницы для получения для данной страницы или представления в виде изображения, или представления XAML. Как дополнительно подробно описано ниже, этот процесс преобразования также может создавать позиционные метаданные, используемые в операциях выбора/поиска, предоставленных в настоящем описании.
После того как блок 322 отформатирует некоторый поднабор страниц в запрашиваемом документе, блок 324 обозначает посылку поднабора размеченных страниц запрашивающей клиентской системе. На фигуре 3 поднабор размеченных страниц в целом обозначен как пункт 326.
Параллельно с блоком 324, в котором поднабор страниц посылается клиентским системам, блок 322 может продолжать форматирование дополнительных страниц документа, как обозначено в целом посредством стрелки 328. Таким образом, как дополнительно описано ниже, услуга 128 поиска и предварительного просмотра документа может позволить программе 118 просмотра на стороне клиента начать представление приготовленного набора страниц в то время, пока сервер продолжает преобразование оставшейся части документа в соответствующий формат. Таким образом, клиентская система не ждет, пока сервер отформатирует весь документ до возможности видеть, по меньшей мере, часть содержания документа. Иначе говоря, приписывание в настоящем документе позволяет клиентской системе и серверу обеспечить инкрементный просмотр содержания документа.
Обращаясь к программе 118 просмотра на стороне клиента, блок 330 в целом представляет собой прием поднабора размеченных страниц 326. В свою очередь, блок 332 представляет собой воспроизведение этого поднабора страниц через программу 118 просмотра. Таким образом, блок 332 может дать возможность пользователю (например, 104) предварительно просмотреть, например, несколько первых страниц в данном документе в выбранном формате высокой точности, без ожидания, пока сервер отформатирует или преобразует весь упомянутый документ.
Для упрощения иллюстрации, но не с целью ограничения возможных вариантов реализации, описание иллюстративных последовательностей 300 процессов продолжается на фигуре 4, как обозначено межстраничной ссылкой 334. Описание этих последовательностей процессов теперь продолжится с фигурой 4.
На фигуре 4 показаны продолжающиеся аспекты, обозначенные в целом пунктом 400, последовательностей процессов, перешедшие с фигур 2 и 3. На фигуре 4 имеется межстраничная ссылка 402, соединяющая последовательности 400 процессов с последовательностями 300 процессов, показанными на фигуре 3. Для облегчения упоминаний и описания, но не с целью ограничения возможных вариантов реализации, на фигуру 4 могут переноситься некоторые элементы из предыдущих чертежей, помеченные теми же самыми номерами ссылок. Например, на фигуру 4 перенесена программа 118 просмотра на стороне клиента и услуга 128 поиска и предварительного просмотра документа на стороне сервера.
Обращаясь более подробно к последовательностям 400 процессов, блок 404 в целом представляет собой ответ на команды пользователя, направленные на страницы, ранее воспроизведенные в блоке 332. Эти команды могут включать в себя, например, команды перемещения или прокрутки, посредством которых пользователь может просматривать начальный поднабор страниц, полученный из упомянутого документа.
Блок принятия решения 406 представляет определение того, запрашивают ли выданные пользователем команды страницы, не доступные в настоящий момент программе просмотра на стороне клиента. Иначе говоря, блок 406 может определять, запрашивал ли пользователь страницу из содержания документа, не включенного в начальный поднабор полученных и размеченных страниц, обозначенный пунктом 326 на фигуре 3. Если блок 406 принятия решения определяет, что запрос пользователя можно удовлетворить страницами, доступными в настоящий момент в программе просмотра на стороне клиента, то последовательности 400 процессов могут выбрать ветку 408 "Нет" для возвращения в блок 404, который был описан выше.
Возвращаясь к блоку 406 принятия решения, если команды, выданные пользователем, запрашивают страницы, не включенные в начальный поднабор 326 страниц, последовательности 400 процессов могут выбрать ветку 410 "Да" к блоку 412. Блок 412 представляет собой запрос дополнительных страниц документа от сервера, при этом запрос в целом обозначен пунктом 414. Запрос 414 может указывать формат отображения для запрашивающего клиента, и также может указывать, посылать ли оставшиеся неотправленные страницы документа, или послать некоторый поднабор оставшихся неотправленных страниц.
На сервере блок 416 в целом представляет собой прием запроса 414 на дополнительные страницы упомянутого документа. Как представлено пунктом 328 на фигуре 3, пока клиент просмотра воспроизводит подготовленный поднабор размеченных и полученных страниц 326, серверная система параллельно работает над форматированием дополнительных страниц для возможной последующей посылки и представления клиентом просмотра. Таким образом, если от клиента просмотра прибывает запрос 414 на дополнительные страницы, серверная система может послать дополнительные страницы клиенту просмотра, как представлено в целом в пункте 418. Блок 418 может включать в себя посылку всех оставшихся неотправленных страниц документа, или может включать в себя другой поднабор этих оставшихся страниц. На фигуре 4 эти дополнительные страницы в целом обозначены пунктом 420.
Возвращаясь к клиентской системе, блок 422 в целом представляет собой прием дополнительных страниц 420 в ответ на запрос 414. В свою очередь, блок 424 представляет собой воспроизведение дополнительных страниц в программе 118 просмотра на стороне клиента. Как показано стрелкой, соединяющей блок 424 с блоком 404, последовательности 400 процессов могут возвращаться к блоку 404 для ожидания и ответа на пользовательские команды, направленные на дополнительные страницы, воспроизводимые в блоке 424.
Описав последовательности процессов, показанных на фигурах 2, 3 и 4, рассмотрение теперь обращается к описанию дополнительных подробностей, относящихся к форматированию страниц для клиентов просмотра. Это описание предоставлено здесь вместе с фигурой 5.
На фигуре 5 показаны последовательности процессов, в целом обозначенные пунктом 500, которые предоставляют дополнительные подробности, относящиеся к форматированию страниц для клиентов просмотра. Для облегчения упоминаний и описания, но не с целью ограничения возможных вариантов реализации, на фигуру 5 могут переноситься некоторые элементы из предыдущих чертежей, обозначенные теми же самыми номерами ссылок. Например, на фигуру 5 перенесена услуга 128 поиска и предварительного просмотра документа на стороне сервера. Более конкретно, последовательности 500 процессов конкретизируют блок 322 процесса, показанный на фигуре 3.
Обращаясь к последовательностям 500 процессов более подробно, блок 502 представляет собой создание позиционных метаданных для содержимого различных страниц в данном документе. Блок 502 может включать создание метаданных единообразным способом, независимо от того, имеет ли клиентская система установленные компоненты подключаемого программного модуля для отображения содержимого с высокой точностью. Как детально описано ниже, клиентская система может использовать эти метаданные для осуществления признаков, включающих в себя, но не ограничивающихся этим, выбор содержимого, копирование содержимого, сохранение гиперссылок, встречающихся в данном документе, и тому подобного.
В некоторых вариантах реализации позиционные метаданные можно создавать в формате XML. Дополнительно, позиционные метаданные можно получить из представлений расширенного формата метафайла (EMF), произведенных серверной системой, в качестве промежуточного этапа в форматировании или преобразовании страниц документа для программ просмотра на стороне клиента. Тогда как EMF представления предоставлены здесь в качестве примера, варианты реализации данного изобретения могут использовать другие эквивалентные представления, предоставляющие признаки или возможности, сходные с EMF. Для примера, записи комментариев, относящихся к этим представлениям, могут задать структуру документа, а также предоставить семантическую информацию, которая обозначает, где начинается и заканчивается текст. Эта семантическая информация также может идентифицировать внутренние и внешние гиперссылки, встречающиеся на страницах данного документа. Представление EMF также может обозначать, где в документе встречаются чертежи или изображения.
Посредством объединения описанной выше структурной и семантической информации с информацией о чертежах или изображениях блок 502 может устанавливать различные виды информации, относящейся к данному документу, и включать эту информацию в метаданные, создаваемые для страниц упомянутого документа. К примеру, блок 504 представляет собой указание абзацев в данном документе. Более конкретно, блок 504 может содержать точное определение, для различных абзацев в документе, числа, обозначающего прядок, в котором данные абзацы встречаются в документе применительно к другим абзацам, таблицам, фигурам, изображениям и тому подобному.
Блок 506 представляет собой указание элементов в таблице, встречающейся в документе. Более конкретно, блок 508 представляет собой, для различных таблиц в данном документе, точное определение числа, обозначающего порядок, в котором данные таблицы встречаются в данном документе применительно к другим абзацам, таблицам, фигурам, изображениям и тому подобному. В дополнение, блок 510 представляет собой указание различных строк таблиц в данной таблице, и блок 512 представляет собой указание различных ячеек в данной строке в данной таблице.
Блок 514 в целом представляет собой вычисление ограничивающего прямоугольника для упомянутого отрезка текста, встречающегося в строке в данном документе. Например, блок 514 может включать в себя вычисление верхнего левого угла ограничивающего прямоугольника вместе с длиной и шириной данного прямоугольника. В некоторых вариантах реализации блок 514 также может включать в себя определение строки Юникода, представляющей собой символические знаки в данном отрезке текста. Ограничивающий прямоугольник можно выразить в пересчете на точки и можно определить относительно верхнего левого угла страницы, на которой встретился упомянутый отрезок текста. Хотя, некоторые варианты реализации могут вычислять эти прямоугольники, другие варианты реализации могут вычислять положение для конкретных символических знаков или символов в отрезке текста и передавать эти положения далее программе просмотра на стороне клиента. Эти последние из двух варианты осуществления могут позволить выбор на уровне отдельных символов.
Термин "отрезок текста" относится к последовательности символов, которые совместно используют общее форматирование, шрифты или другие характеристики. Отрезки текста можно разбивать символами, показывающими изменения в любой из перечисленных выше характеристик. Дополнительно, отрезки текста могут встречаться в данной строке текста, но (в некоторых примерах вариантов реализации) не охватывать более чем одну строку в абзаце.
Блок 516 представляет собой вычисление соответствующих ограничительных рамок для источников любых гиперссылок, встречающихся на страницах документа. Если гиперссылка ссылается на цель, находящуюся за переделами документа, блок 516 может вкладывать упомянутый URL цели в метаданные. Если гиперссылка ссылается на внутреннюю цель в данном документе, то блок 516 может вкладывать в метаданные номер целевой страницы цели и координаты цели.
Блок 518 представляет собой выполнение построения отрезков текста, чтобы произвести информацию для строк в абзаце. Более конкретно, блок 518 может включать в себя анализ ограничительных рамок для отрезков текста, встречающихся в абзаце, чтобы определить, какие отрезки текста попадают в одну и ту же строку. Блок 518 может содержать организацию отрезков текста в строки, поскольку обычные пользователи охотнее понимают строки текста по сравнению с текстовыми отрезками символов.
Услуга 128 поиска и предварительного просмотра документа может предоставлять клиентской системе позиционные метаданные для использования программой просмотра на стороне клиента (например, 118). Например, метаданные можно вложить как часть страниц 326 и/или 420, как показано на фигурах 3 и 4, соответственно. Нижеследующий XML предоставляет пример позиционных метаданных, но следует понимать, что этот пример предоставлен только с целью иллюстрации данного описания, а не с целью ограничения возможных вариантов реализации настоящего изобретения:
<page id="l">
<paragraph order="l">
<line top="10px" left="15px" width="700px" height="8px"
text="Это первая строка в параграфе 1."/>
<line top="20px" left="15px" width="700px" height="8px"
text="Это вторая строка в параграфе 1."/>
</paragraph>
<table order="2">
<tr>
<td>
<paragraph order="3">
<line top="30px" left="30px" width="200px"
height="8px" text="Это первая ячейка в данной таблице."/>
</paragraph>
</td>
<td>
<paragraph order="4">
<line top="30px" left="400px" width="200px"
height="8px" text="Это вторая ячейка в таблице."/>
</paragraph>
</td>
</tr>
</table>
</page>
Описав последовательности 500 процессов, предоставляющие дополнительные подробности, относящиеся к форматированию страниц для клиентов просмотра, описание теперь переходит к более подробному описанию различных видов пользовательских команд, на которые может отвечать программа просмотра на стороне клиента. Это описание представлено здесь с фигурой 6.
На фигуре