Система и способ обработки заметки скриншотного типа для потокового документа
SYSTEM AND METHOD OF PROCESSING A SCREENSHOT-TYPE NOTE FOR A STREAMING DOCUMENT

[0001] Эта заявка основана на заявке на патент КНР № CN 201610318879.3, озаглавленной «СИСТЕМА И СПОСОБ ОБРАБОТКИ ЗАМЕТКИ СКРИНШОТНОГО ТИПА ДЛЯ ПОТОКОВОГО ДОКУМЕНТА» («SYSTEM AND METHOD FOR PROCESSING SCREENSHOT-TYPE NOTE OF STREAMING DOCUMENT»), поданной 13 мая 2016 года.
ОБЛАСТЬ ТЕХНИКИ
[0002] Настоящее изобретение относится к области компьютерной техники и в частности к системе и способу обработки заметки скриншотного типа для потокового документа.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
[0003] Способ хранения и отображения заметки скриншотного типа в документе с фиксированным макетом состоит в том, чтобы сохранять номер страницы и экранные координаты на странице, соответствующие скриншоту (снимку экрана), и отображать заметку скриншотного типа в соответствующей позиции.
[0004] Когда скриншот сохраняют, абсолютные координаты скриншота (номер страницы и экранные координаты на этой странице) для скриншота в документе с фиксированным макетом отправляются обратно на сервер и сохраняются в записи, соответствующей заметке в базе данных. Когда документ загружен, вызывается порт сервера, и абсолютные координаты всех заметок скриншотного типа посылаются обратно. Когда получают изображение документа с фиксированным макетом, заметки отображают в соответствующих позициях.
[0005] Однако технология хранения заметки скриншотного типа в документе с фиксированным макетом не подходит для потокового документа. Это связано с тем, что потоковый документ может быть переформатирован при отображении, и в этом случае номера страниц и экранные координаты изменятся, и сохраненные позиции заметок будут потеряны.
[0006] Следовательно, существует потребность в новой системе и способе обработки заметки скриншотного типа для потокового документа.
[0007] Вышеприведенная информация, раскрытая в разделе «Предпосылки создания изобретения», предназначена только для улучшения понимания предпосылок создания настоящего изобретения, и, таким образом, она может включать в себя информацию, которая не составляет предшествующий уровень техники, известный специалистам в данной области техники.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0008] Настоящее изобретение предлагает систему и способ обработки заметки скриншотного типа для потокового документа, что может повысить эффективность для пользователя при чтении и поиске комментариев, сделанных в электронной книге.
[0009] Другие признаки и преимущества настоящего изобретения будут очевидны из последующего подробного описания.
[0010] В соответствии с первым аспектом настоящего изобретения предлагается система для обработки заметки скриншотного типа для потокового документа, содержащая: модуль обработки жестов, выполненный с возможностью записывать экранные координаты выбранной области заданной формы, определенной посредством жеста на текущей странице потокового документа; модуль вычисления позиции заметки, выполненный с возможностью принимать экранные координаты выбранной области заданной формы и преобразовывать экранные координаты заданной позиции в выбранной области в относительную позицию листового узла в потоковом документе; и модуль хранения информации о заметках, выполненный с возможностью сохранять относительную позицию листового узла и экранные координаты выбранной области в качестве информации о позиции заметки.
[0011] В варианте осуществления настоящего изобретения заданная форма представляет собой четырехугольник, а экранные координаты выбранной области представляют собой экранные координаты четырех точек верхнего левого угла, верхнего правого угла, нижнего левого угла и нижнего правого угла четырехугольника.
[0012] В варианте осуществления настоящего изобретения заданная позиция представляет собой экранные координаты верхнего левого угла выбранной области.
[0013] В варианте осуществления настоящего изобретения модуль вычисления позиции заметки содержит: блок сопоставления листовых узлов, выполненный с возможностью вычислять расстояние между экранными координатами верхнего левого угла и листовым узлом на текущей странице потокового документа и принимать листовой узел с минимальным расстоянием в качестве листового узла, соответствующего текущей заметке скриншотного типа; решающий блок, выполненный с возможностью определять, является ли соответствующий листовой узел текстовым узлом; и блок определения позиции заметки, выполненный с возможностью: когда листовой узел является нетекстовым узлом, принимать номер узла, соответствующий листовому узлу, в качестве относительной позиции листового узла; когда листовой узел является текстовым узлом, принимать номер узла, соответствующий узловому узлу, и относительную позицию символа в листовом узле с минимальным расстоянием до экранных координат верхнего левого угла, в качестве относительной позиции листового узла.
[0014] В варианте осуществления настоящего изобретения блок определения позиции заметки содержит: подблок вычисления позиции строки, выполненный с возможностью определять, в соответствии с продольным расстоянием между экранными координатами верхнего левого угла и верхом листового узла и высотой строки для каждой строки листового узла, позицию строки экранных координат верхнего левого угла в листовом узле; и подблок вычисления позиции столбца, выполненный с возможностью определять, в соответствии с поперечным расстоянием между экранными координатами верхнего левого угла и крайним левым краем листового узла и горизонтальной шириной каждого символа листового узла, символ листового узла, соответствующий экранным координатам верхнего левого угла.
[0015] В варианте осуществления настоящего изобретения блок определения позиции заметки дополнительно содержит: подблок вычисления относительной позиции, выполненный с возможностью вычислять расстояние между соответствующим символом и первым символом листового узла и принимать это расстояние в качестве относительной позиции символа в листовом узле.
[0016] В варианте осуществления настоящего изобретения система дополнительно содержит: модуль ввода заметок, выполненный с возможностью принимать содержимое заметки, введенной пользователем в выбранной области, и вводить содержимое заметки в модуль хранения информации о заметках; при этом модуль хранения информации о заметках выполнен с возможностью сохранять позицию заметки и содержимое заметки в ассоциации друг с другом.
[0017] В варианте осуществления настоящего изобретения система дополнительно содержит: модуль отображения информации о заметках, выполненный с возможностью отображать содержимое заметки в позиции заметки.
[0018] В соответствии с другим аспектом настоящего изобретения также предлагается способ обработки заметки скриншотного типа для потокового документа, включающий в себя: запись экранных координат выбранной области заданной формы, определенной жестом на текущей странице потокового документа; прием экранных координат выбранной области заданной формы и преобразование экранных координат заданной позиции в выбранной области в относительную позицию листового узла в потоковом документе; и сохранение относительной позиции листового узла и экранных координат выбранной области в качестве информации о позиции заметки.
[0019] В варианте осуществления настоящего изобретения заданная форма представляет собой четырехугольник, а экранные координаты выбранной области являются экранными координатами четырех точек верхнего левого угла, верхнего правого угла, нижнего левого угла и нижнего правого угла четырехугольника.
[0020] В варианте осуществления настоящего изобретения заданная позиция представляет собой экранные координаты верхнего левого угла выбранной области.
[0021] В варианте осуществления настоящего изобретения преобразование экранных координат заданной позиции в выбранной области в относительную позицию листового узла в потоковом документе включает в себя: вычисление расстояния между экранными координатами верхнего левого угла и листового узла на текущей странице потокового документа и принятие листового узла с минимальным расстоянием в качестве листового узла, соответствующего текущей заметке скриншотного типа; определение, является ли соответствующий листовой узел текстовым узлом; когда листовой узел является нетекстовым узлом, принятие номера узла, соответствующего листовому узлу, в качестве относительной позиции листового узла; и когда листовой узел является текстовым узлом, принятие номера узла, соответствующего узловому узлу, и относительной позиции символа в листовом узле с минимальным расстоянием до экранных координат верхнего левого угла в качестве относительной позиции листового узла.
[0022] В варианте осуществления настоящего изобретения принятие номера узла для листового узла, соответствующего экранным координатам верхнего левого угла, и относительной позиции соответствующего символа в листовом узле в качестве позиции узла включает в себя: определение, в соответствии с продольным расстоянием между экранными координатами верхнего левого угла и верхом листового узла и высотой строки для каждой строки листового узла, позиции строки экранных координат верхнего левого угла в листовом узле; определение, в соответствии с поперечным расстоянием между экранными координатами верхнего левого угла и крайним левым краем листового узла и горизонтальной шириной каждого символа листового узла, символа листового узла, соответствующего экранным координатам верхнего левого угла; и вычисление расстояния между соответствующим символом и первым символом листового узла, и принятие этого расстояния в качестве относительной позиции символа в листовом узле.
[0023] В варианте осуществления настоящего изобретения способ дополнительно включает в себя: прием содержимого заметки, введенного пользователем в выбранной области; и сохранение позиции заметки и содержимого заметки в ассоциации друг с другом на сервере.
[0024] В варианте осуществления настоящего изобретения способ дополнительно включает в себя: отправку на сервер запроса на возврат всех позиций заметок согласно потоковому документу; при рендеринге следующей страницы потокового документа в случае, когда на странице есть заметка, отображение заданного маркера в заданной точке соответствующей позиции заметки; при приеме нажатия пользователя на заданный маркер, отправку запроса на возврат соответствующего содержимого заметки на сервер; и после приема содержимого заметки, возвращенного с сервера, отображение содержимого заметки в позиции заметки потокового документа в заранее заданной форме.
[0025] В системе и способе обработки заметки скриншотного типа для потокового документа, раскрытого в некоторых вариантах осуществления настоящего изобретения, путем сохранения относительной позиции заметки скриншотного типа в потоковом документе можно повысить точность отображаемой позиции заметки скриншотного типа в потоковом документе, и это может улучшить опыт пользователя.
[0026] Вышеупомянутое общее описание и последующее подробное описание предназначены для иллюстрации, а не для ограничения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0027] Прилагаемые чертежи, которые включены в настоящее описание и составляют его часть, иллюстрируют варианты осуществления, согласующиеся с изобретением, и вместе с описанием служат для объяснения принципов изобретения.
[0028] Фиг. 1 представляет структурную схему, иллюстрирующую систему для обработки заметки скриншотного типа для потокового документа, в соответствии с примером осуществления настоящего изобретения;
[0029] Фиг. 2 представляет схематическое изображение, показывающее заметку скриншотного типа для потокового документа на основе системы по фиг. 1;
[0030] Фиг. 3 представляет структурную схему, иллюстрирующую систему для обработки заметки скриншотного типа для потокового документа, в соответствии с примером осуществления настоящего изобретения;
[0031] Фиг. 4 представляет схематическое изображение заметки, отображаемой на основе системы по фиг. 3;
[0032] Фиг. 5 представляет блок-схему, иллюстрирующую способ обработки заметки скриншотного типа для потокового документа в соответствии с примером осуществления настоящего изобретения;
[0033] Фиг. 6 представляет блок-схему, иллюстрирующую способ обработки заметки скриншотного типа для потокового документа в соответствии с примером осуществления настоящего изобретения;
[0034] Фиг. 7 представляет схематическое изображение заметки скриншотного типа, отображаемое, когда потоковый документ не переформатирован на основе способа показанного на фиг. 6; и
[0035] Фиг. 8 представляет схематическое изображение заметки скриншотного типа, отображаемое после того, как потоковый документ переформатирован на основе способа, показанного на фиг. 6.
ПОДРОБНОЕ ОПИСАНИЕ
[0036] Примеры осуществления теперь будут описаны более полно со ссылкой на прилагаемые чертежи. Однако примеры осуществления могут быть воплощены во множестве форм и не должны рассматриваться как ограниченные вариантами, изложенными в данном документе. Эти варианты осуществления предоставлены для того, чтобы сделать настоящее раскрытие более полным и исчерпывающим и полностью передать концепцию примеров осуществления специалистам в данной области техники. Чертежи являются только схематической иллюстрацией раскрытия и не обязательно выполнены в масштабе. Одинаковые ссылочные позиции на чертежах обозначают одинаковые или подобные структуры, и, следовательно, их подробное описание будет опущено.
[0037] Признаки, структуры или характеристики, описанные выше, могут быть объединены любым подходящим образом в одном или более вариантах осуществления. В приведенном ниже описании изложены многочисленные конкретные детали, чтобы обеспечить полное понимание вариантов осуществления настоящего изобретения. Однако специалист в данной области техники поймет, что техническое решение настоящего изобретения может быть осуществлено на практике без одной или более конкретных деталей, или могут быть использованы другие способы, компоненты, системы, шаги и тому подобное. В других случаях общеизвестные структуры, способы, системы, реализации, материалы или операции не показаны и не описаны подробно, чтобы избежать затушевывания аспектов настоящего изобретения.
[0038] Некоторые из структурных схем, показанных на чертежах, являются функциональными объектами и не обязательно должны соответствовать физически или логически отдельным объектам. Эти функциональные объекты могут быть реализованы в программном обеспечении, или реализованы в одном или более аппаратных модулях или интегральных схемах, или реализованы в различных сетевых и/или процессорных системах и/или микроконтроллерных системах.
[0039] Варианты осуществления, описанные в последующих примерах осуществления, не представляют все варианты осуществления, согласующиеся с настоящим изобретением. Напротив, они являются только примерами систем и способов, согласующихся с аспектами настоящего изобретения, как подробно описано в прилагаемой формуле изобретения.
[0040] Фиг. 1 представляет структурную схему, иллюстрирующую систему для обработки заметки скриншотного типа для потокового документа в соответствии с примером осуществления настоящего изобретения.
[0041] Как показано на фиг. 1, система содержит: модуль 110 обработки жестов, выполненный с возможностью записывать экранные координаты выбранной области заданной формы, определенной жестом на текущей странице потокового документа; модуль 120 вычисления позиции заметки, выполненный с возможностью принимать экранные координаты выбранной области заданной формы и преобразовывать экранные координаты заданной позиции в выбранной области в относительную позицию листового (краевого) узла в потоковом документе; модуль 130 хранения информации о заметках, выполненный с возможностью сохранять относительную позицию листового узла и экранные координаты выбранной области в качестве информации о позиции заметки. Модуль 110 обработки жестов соединен с модулем 120 вычисления позиции заметки и модулем 130 хранения информации о заметках соответственно для ввода экранных координат выбранной области, захваченной модулем 110 обработки жестов, в модуль 120 вычисления позиции заметки и модуль 130 хранения информации о заметках соответственно. Модуль 120 вычисления позиции заметки соединен с модулем 130 хранения информации о заметках.
[0042] В настоящее время мобильные приложения для чтения обычно поддерживают хранение и отображения заметки текстового типа в потоковых документах, включая подчеркивание строк, заметку и тому подобное. При сохранении заметки текстового типа фиксируется позиция, в которой происходит событие долгого нажатия пальцем или событие скольжения пальцем, согласовывается позиция листового узла с отображаемым в данный момент потоковым документом и сохраняется номер соответствующего листового узла и относительная позиция соответствующего символа в листовом узле в качестве параметра в записи соответствующей заметки, хранящейся в базе данных.
[0043] Однако, хотя номер листового узла и относительная позиция символа в узле могут быть записаны для заметки текстового типа, узел нетекстового типа не может быть распознан; узел нетекстового типа - это узел, который не содержит символа, например, узел изображения, аудио узел, видео узел, узел FLASH и т.п. Заметки скриншотного типа поддерживаются нетекстовыми узлами. Однако заметка скриншотного типа не может напрямую получить номера узлов и относительные позиции символов потокового документа.
[0044] Потоковый документ - это документ, содержащий тексты, цифры, таблицы и графические изображения, которые были обработаны определенным способом форматирования. Сохраненное содержимое называется первоначальными элементами редактирования. Пользователь может просматривать отредактированный макет с помощью программного обеспечения для чтения, и документ может отображаться в масштабе, автоматически адаптированном к размеру экрана. При отображении на экране небольшого размера в устройстве для чтения электронных книг, желательно увеличить масштаб, а поэтому изменить исходный макет и отрегулировать разрывы строк абзацев в соответствии с шириной экрана так, чтобы адаптировать к полю изображения одной страницы.
[0045] Потоковый документ имеет множество листовых узлов, в том числе: текстовый абзац, изображение, ссылку, элемент управления звуком и видео. Ссылка, span (строчный элемент гипертекстовой разметки), div (блочный элемент гипертекстовой разметки), p (тег) и т.д. могут быть преобразованы в текстовые абзацы, которые могут быть приняты в качестве текстовых узлов в настоящем изобретении. Поэтому функция пометки строки запускается, когда жест пометки появляется в текстовом абзаце или ссылке.
[0046] Основное отличие документа с фиксированным макетом от потокового макета состоит в том, что раскладка первого является фиксированной. В процессе чтения документ постоянно отображается в исходном макете. После масштабирования макет не переформатируется автоматически в соответствии с шириной страницы, например, таким является файл PDF, созданный из рукописи исходного изображения, которая получена сканированием.
[0047] В примере осуществления заданная форма представляет собой четырехугольник, а экранные координаты выбранной области представляют собой экранные координаты четырех точек верхнего левого угла, верхнего правого угла, нижнего левого угла и нижнего правого угла четырехугольника.
[0048] В примере осуществления заданная позиция представляет собой экранные координаты верхнего левого угла выбранной области.
[0049] В примере осуществления модуль 120 вычисления позиции заметки содержит: модуль сопоставления листовых узлов, выполненный с возможностью вычислять расстояние между экранными координатами верхнего левого угла и листового узла на текущей странице потокового документа и принимать листовой узел с минимальным расстоянием в качестве листового узла, соответствующего текущей заметке скриншотного типа; решающий блок, выполненный с возможностью определять, является ли соответствующий листовой узел текстовым узлом; и блок определения позиции заметки, выполненный с возможностью: когда листовой узел является нетекстовым узлом, принимать номер узла, соответствующий листовому узлу, в качестве относительной позиции листового узла; а когда листовой узел является текстовым узлом, принимать номер узла, соответствующий листовому узлу, и относительную позицию символа в узловом узле с минимальным расстоянием до экранных координат верхнего левого угла в качестве относительной позиции листового узла.
[0050] В примере осуществления блок определения позиции заметки содержит: подблок вычисления позиции строки, выполненный с возможностью определять, в соответствии с продольным расстоянием между экранными координатами верхнего левого угла и вершиной листового узла и высотой строки для каждой строки листового узла, позиции строки экранных координат верхнего левого угла в листовом узле; и подблок вычисления позиции столбца, выполненный с возможностью определять, в соответствии с поперечным расстоянием между экранными координатами верхнего левого угла и крайним левым краем листового узла и в соответствии с горизонтальной шириной каждого символа листового узла, символ листового узла, соответствующий экранным координатам верхнего левого угла.
[0051] В примере осуществления блок определения позиции заметки дополнительно содержит: подблок вычисления относительной позиции, выполненный с возможностью вычислять расстояние между соответствующим символом и первым символом листового узла и принимать это расстояние в качестве относительной позиции символа в листовом узле.
[0052] Фиг. 2 представляет схематическое изображение, показывающее заметку скриншотного типа для потокового документа на основе системы, показанной на фиг. 1.
[0053] Страница для чтения в мобильном приложении представляет собой скриншот в форме изображения, и после редактирования изображение сохраняется в виде заметки скриншотного типа, как показано на фиг. 2.
[0054] Фиг. 3 представляет структурную схему, иллюстрирующую систему для обработки заметки скриншотного типа для потокового документа в соответствии с примером осуществления настоящего изобретения.
[0055] Как показано на фиг. 3, система содержит: модуль 310 обработки жестов, выполненный с возможностью записывать экранные координаты выбранной области заданной формы, определенной жестом на текущей странице потокового документа; модуль 320 вычисления позиции заметки, выполненный с возможностью принимать экранные координаты выбранной области заданной формы и преобразовывать экранные координаты заданной позиции в выбранной области в относительную позицию листового узла в потоковом документе; и модуль 330 хранения информации о заметках, выполненный с возможностью сохранять относительную позицию листового узла и экранные координаты выбранной области в качестве информации о заметке.
[0056] В примере осуществления система дополнительно содержит модуль 340 ввода заметок, выполненный с возможностью принимать содержимое заметки, введенное пользователем в выбранной области, и вводить содержимое заметки в модуль хранения информации о заметках. Модуль хранения информации о заметках выполнен с возможностью сохранять позицию заметки и содержимое заметки в ассоциации друг с другом.
[0057] В примере осуществления система дополнительно содержит модуль 350 отображения информации о заметках, выполненный с возможностью отображать содержимое заметки в позиции заметки.
[0058] Система согласно варианту осуществления настоящего изобретения может также содержать две части: клиент и сервер. Клиент включает в себя модуль 310 обработки жестов, модуль 320 вычисления позиции заметки, модуль 340 ввода заметок и модуль 350 отображения информации о заметках. Сервер включает в себя модуль 330 хранения информации о заметках. Следует отметить, что разделение модулей, включенных в состав клиента и сервера, предназначено не для ограничения изобретения, а является просто иллюстративным примером. Например, модуль 310 обработки жестов, модуль 320 вычисления позиции заметки и модуль 350 хранения информации о заметках могут все быть расположены на сервере.
[0059] Модуль 310 обработки жестов выполнен с возможностью обрабатывать событие жеста, когда пользователь делает заметку скриншотного типа, и записывать экранные координаты выбранной области, которые должны быть отправлены в модуль 320 вычисления позиции заметки. Модуль 320 вычисления позиции заметки выполнен с возможностью преобразовывать экранные координаты выбранной области в относительную позицию заметки скриншотного типа в потоковом документе.
[0060] Например, в случае нетекстового узла, номер узла выбирают в качестве позиции заметки; а в случае текстового узла номер узла и относительную позицию символа в листовом узле с минимальным расстоянием до экранных координат верхнего левого угла выбранной области выбирают в качестве позиции заметки.
[0061] Модуль 340 ввода заметок имеет связь с модулем 330 хранения информации о заметках на сервере для передачи содержимого заметки и информации о позиции заметки на сервер. Модуль 350 отображения информации о заметках имеет связь с модулем 330 хранения информации о заметках на сервере, чтобы отправить запрос на отображения заметки и отобразить содержимое возращенного заметки и позицию заметки в соответствующей позиции потокового документа.
[0062] Модуль 330 хранения информации о заметках на сервере выполнен с возможностью сохранять в ассоциации друг с другом содержимое заметки и позицию заметки, переданные от клиента, и отвечать на запрос на отображения заметки, отправленный клиентом.
[0063] Остальное описание в варианте осуществления настоящего изобретения соответствует описанию предшествующего варианта осуществления, подробности которого не будут повторяться в данном документе.
[0064] Фиг. 4 показывает схематическое изображение отображения заметки на основе системы, показанной на фиг. 3.
[0065] Для отображения клиенту необходимо вызвать интерфейс сервера. При загрузке потокового документа клиент сначала извлекает позиции всех заметок в текущем документе, и при рендеринге и разметке текущего потокового документа клиент отображает строки пометок в позициях соответствующих символов в соответствующих узлах, как показано на фиг. 4.
[0066] Фиг. 5 представляет блок-схему, иллюстрирующую способ обработки заметки скриншотного типа для потокового документа в соответствии с примером осуществления настоящего изобретения.
[0067] Как показано на фиг. 3, на шаге S510 записывают экранные координаты выбранной области заданной формы, определенной жестом на текущей странице потокового документа.
[0068] В примере осуществления заданная форма представляет собой четырехугольник, а экранные координаты выбранной области представляют собой экранные координаты четырех точек верхнего левого угла, верхнего правого угла, нижнего левого угла и нижнего правого угла четырехугольника.
[0069] На шаге S520 принимают экранные координаты выбранной области заданной формы, и экранные координаты заданной позиции в выбранной области преобразуют в относительную позицию листового узла в потоковом документе.
[0070] В примере осуществления заданная позиция представляет собой экранные координаты верхнего левого угла выбранной области.
[0071] В примере осуществления преобразование экранных координат заданной позиции в относительную позицию листового узла в потоковом документе включает в себя: вычисление расстояния между экранными координатами верхнего левого угла и листовым узлом на текущей странице потокового документа и принятие листового узла с минимальным расстоянием в качестве листового узла, соответствующего текущей заметке скриншотного типа; определение, является ли соответствующий листовой узел текстовым узлом; и, когда листовой узел является нетекстовым узлом, принятие номера узла, соответствующего листовому узлу, в качестве относительной позиции листового узла; а когда листовой узел является текстовым узлом, принятие номера узла, соответствующего листовому узлу, и относительной позиции символа в листовом узле с минимальным расстоянием до экранных координат верхнего левого угла в качестве относительной позиции листового узла.
[0072] В примере осуществления принятие номера узла листового узла, соответствующего экранным координатам верхнего левого угла, и относительной позиции соответствующего символа в листовом узле в качестве позиции заметки включает в себя: определение, в соответствии с продольным расстоянием между экранными координатами верхнего левого угла и вершиной листового узла и высотой строки для каждой строки листового узла, позиции строки экранных координат верхнего левого угла в листовом узле; определение, в соответствии с поперечным расстоянием между экранными координатами верхнего левого угла и крайним левым краем листового узла и горизонтальной шириной каждого символа листового узла, символа листового узла, соответствующего экранным координатам верхнего левого угла; и вычисление расстояния между соответствующим символом и первым символом в листовом узле, и принятие этого расстояния в качестве относительной позиции символа в листовом узле.
[0073] На шаге S530 сохраняют относительную позицию листового узла и экранные координаты выбранной области в качестве информации о позиции заметки.
[0074] В примере осуществления способ дополнительно включает в себя: прием содержимого заметки, введенного пользователем в выбранной области, и сохранение позиции заметки и содержимого заметки в ассоциации друг с другом на сервере.
[0075] В примере осуществления способ дополнительно включает в себя: отправку на сервер запроса на возврат всех позиций заметок по потоковому документу; при рендеринге следующей страницы потокового документа, если на странице есть заметка, отображение заданного маркера в заданной точке соответствующей позиции заметки; при приеме от пользователя нажатия на заданный маркер, отправку запроса на возврат соответствующего содержимого заметки на сервер; и после приема содержимого заметки, возвращенного с сервера, отображение содержимого заметки в позиции заметки потокового документа в заранее заданной форме.
[0076] Остальное описание в этом варианте осуществления настоящего изобретения аналогично описанию предшествующего варианта осуществления, подробности которого не будут повторяться в данном документе.
[0077] Фиг. 6 представляет блок-схему, иллюстрирующую способ обработки заметки скриншотного типа для потокового документа в соответствии с примером осуществления настоящего изобретения.
[0078] Как показано на фиг. 6, на шаге S610 пользователь открывает в терминале клиента интерфейс чтения потокового документа.
[0079] На шаге S620, когда клиент обнаруживает, что определенная позиция на текущем интерфейсе потокового документа длительно нажата пальцем пользователя или стилусом и т.п., вызываются опции заметки.
[0080] Модуль обработки жестов на клиенте отслеживает событие длительного нажатия пальцем, и когда происходит событие длительного нажатия пальцем, вызывается интерфейс операций с заметками.
[0081] Например, плавающий слой изображения появляется на текущем интерфейсе потокового документа, при этом опции заметки могут включать в себя такие элементы, как «копировать», «пометка», «заметка» ("copy", "scribing", "note") и т.п., которые выбираются пользователем.
[0082] На шаге S630 нажимают «заметка» («note») в опциях заметки.
[0083] Когда клиент обнаруживает, что пользователь нажимает на опцию «комментарии» в опциях заметки, процесс переходит к следующему шагу.
[0084] На шаге S640 отображают выбранную рамку заметки, и размер и позиция выбранной рамки могут изменяться путем скольжения.
[0085] Выбранная рамка заметки может быть отображена на текущей странице потокового документа, например, выбранная рамка заметки имеет форму прямоугольника. Пользователь может перетащить четыре угла или любой из четырех углов или любую сторону прямоугольника, чтобы изменить размер и позицию выбранной рамки.
[0086] На шаге S650 определяют, подтверждена ли выбранная область.
[0087] Модуль обработки жестов на клиенте отслеживает событие перемещения пальца, и когда палец перестает двигаться и нажимает кнопку «ОК», выплывает сообщение подсказки для подтверждения выбранной области.
[0088] Когда клиент обнаруживает, что пользователь прекращает скольжение выбранной рамки, окно подсказки отображается на текущей странице потокового документа для подсказки пользователю подтвердить текущую выбранную область, и пользователь может нажать кнопку «ОК» или кнопку «Отмена» («Cancel»).
[0089] Когда пользователь нажимает кнопку «ОК», процесс переходит к следующему шагу, в противном случае, когда пользователь нажимает кнопку «Отмена», процесс переходит к шагу S6190.
[0090] На шаге S660 подтверждают выбранную область.
[0091] Клиент подтверждает текущую выбранную пользователем область и принимает текстовое содержимое в выбранной рамке потокового документа в качестве исходного текста, соответствующего заметке скриншотного типа.
[0092] На шаге S670 заметку редактируют и сохраняют.
[0093] После подтверждения текущей выбранной пользователем области вводят интерфейс редактирования заметки, модуль ввода заметок представляют в соответствующей позиции потокового документа, соответствующей заметке скриншотного типа, и пользователь может редактировать и сохранять содержимое заметки исходного текста, соответствующего заметке скриншотного типа. После того, как процесс добавления заметки на переднем плане закончен, сохраненное содержимое заметки и другая информация могут быть отправлены в модуль 330 хранения информации на заднем плане.
[0094] На шаге S680 обрабатывают информацию о жестах и записывают выбранную область.
[0095] В то время, как пользователь вводит содержимое заметки, клиент обрабатывает информацию о жестах пользователя и записывает экранные координаты выбранной области, такие как экранные координаты верхнего левого угла, верхнего правого угла, нижнего левого угла и нижнего правого угла прямоугольника, или координаты прямоугольника. В качестве альтернативы записывают экранные координаты верхнего левого угла прямоугольника и длину и ширину сторон рамки, что не ограничено в настоящем изобретении, если записанной информации достаточно для определения позиции сторон рамки.
[0096] Информацию об экранных координатах четырех углов (верхний левый угол, верхний правый угол, нижний левый угол и нижний правый угол) выбранной области, как подтверждено, записывают и возвращают в модуль вычисления позиции заметки на клиенте.
[0097] На шаге S690 вычисляют координаты и размер каждого листового узла текущего потокового документа.
[0098] Модуль вычисления позиции заметки в клиенте повторно вычисляет координаты и размер каждого листового узла (например, номер каждого листового узла, высоту строки текстового узла в листовом узле и горизонтальную ширину символа, соответствующего листовому узлу, количество строк на предыдущей странице и т.д.) текущего потокового документа, когда пользователь открывает потоковый документ или когда впервые обнаруживают, что пользователь намеревается сделать заметку скриншотного типа в текущем потоковом документе. Для вычисления текстового узла листовые узлы разделяют на основе абзацев, причем один абзац соответствует одному листовому узлу. Например, конец абзаца может быть определен на основе символа возврата каретки в конце абзаца.
[0099] На шаге S6100 вычисляют позицию листового узла потокового документа, ближайшую к экранным координатам верхнего левого угла выбранной области.
[00100] Экранные координаты верхнего левого угла выбранной области, как подтверждено, сопоставляют с координатами каждого листового узла потокового документа и определяют координаты листового узла с минимальным физическим расстоянием до экранных координат верхнего левого угла выбранной области. Листовой узел в экранных координатах верхнего левого угла выбранной области с минимальным физическим расстоянием относится к листовому узлу с минимальным физическим линейным расстоянием до экранных координат верхнего левого угла выбранной области или к листовому узлу с минимальным поперечным расстоянием или минимальным продольным расстоянием до экранных координат верхнего левого угла выбранной области. В примере осуществления листовой узел с минимальным физическим расстоянием до экранных координат верхнего левого угла в настоящем документе включает в себя листовые узлы внутри или снаружи выбранной области. В другом примере осуществления листовой узел с минимальным физическим расстоянием до экранных координат верхнего левого узла в настоящем документе включает в себя листовые узлы внутри выбранной области.
[00101] Следует отметить, что, хотя вариант осуществления настоящего изобретения описывается с использованием экранных координат верхнего левого угла выбранной области в качестве примера, настоящее изобретение не ограничивает это. Например, листовой узел потокового документа с минимальным расстоянием до экранных координат верхнего правого угла выбранной области может быть выбран в качестве листового узла, соответствующего заметке скриншотного типа.
[00102] На шаге S6110 определяют, является ли листовой узел потокового документа, ближайший к экранным координатам верхнего левого угла выбранной области, текстовым узлом.
[00103] Когда листовой узел потокового документа, ближайший к экранным координатам верхнего левого угла выбранной области, является нетекстовым узлом, процесс переходит к следующему шагу; в противном случае процесс переходит к шагу S6130.
[00104] На шаге S6120 номер нетекстового узла записывают в качестве позиции заметки.
[00105] Когда листовой узел потокового документа, ближайший к экранным координатам верхнего левого угла выбранной области, является нетекстовым узлом, номер нетекстового узла соответствующего листового узла потокового документа записывают в качестве позиции заметки.
[00106] Если листовой узел является нетекстовым узлом, т.е. узлом, который не содержит текста, таким как узел изображения, аудиоузел, видеоузел, узел FLASH и т.д., номер узла листового узла записывают как X, и номер узла отправляют в модуль вычисления позиции заметки на клиенте в качестве позиции заметки.
[00107] На шаге S6130 номер текстового узла и относительную позицию символа в узле записывают в качестве позиции заметки.
[00108] Когда листовой узел потокового документа, ближайший к экранным координатам верхнего левого угла выбранной области, является текстовым узлом, номер текстового узла соответствующего листового узла потокового документа и относительную позицию символа в узле записывают в качестве позиции заметки.
[00109] Если листовой узел является текстовым узлом, выполняют следующие операции.
[00110] (1) Вычисляют высоту строки соответствующего листового узла, например атрибут высоты строки каскадных таблиц стилей (cascading style sheets, CSS). Как правило, высота строки одинакова для одного и того же текстового листового узла.
[00111] (2) Вычисляют продольное расстояние между экранными координатами верхнего левого угла выбранной области и вершиной листового узла. Если расстояние представляет собой отрицательное значение, первую строку листового узла записывают как соответствующую строку экранных координат верхнего левого угла выбранной области. Когда листовой узел переходит со страницы на страницу, номер строки является фактическим номером строки. Если расстояние представляет собой положительное значение, это расстояние делят на высоту строки, чтобы получить номер листового узла, где расположены экранные координаты верхнего левого угла выбранной области. Если полученный номер строки больше, чем полное числа строк листового узла, или больше, чем полное число строк на текущей странице, последнюю строку или последнюю строку на текущей странице листового узла записывают как соответствующую строку.
[00112] Как сказано выше, когда листовой узел переходит со страницы на страницу, номер строки является фактическим номером строки. Это означает, что, когда листовой узел переходит со страницы на страницу, например, листовой узел включает в себя 2 строки на предыдущей странице и 3 строки на текущей странице, и вычисление вышеупомянутого шага (2) дает в результате то, что экранные координаты верхнего левого угла выбранной области соответствуют второй строке листового узла на текущей странице, в это время фактический номер строки экранных координат верхнего левого угла выбранной области, соответствующий листовому узлу, является 4-й строкой, т.е. дополнительно добавляются две строки предыдущей страницы.
[00113] (3) Вычисляют горизонтальную ширину (CSS, ширина lem) символа в соответствующем листовом узле.
[00114] Вычисляют горизонтальное расстояние между экранными координатами верхнего левого угла выбранной области и левой стороной листового узла. Если расстояние представляет собой отрицательное значение, первый символ в строке записывают как символ, соответствующий экранным координатам верхнего левого угла выбранной области. Если расстояние представляет собой положительное значение, это расстояние делят на горизонтальную ширину символа, чтобы определить, на каком символе в строке расположены экранные координаты верхнего левого угла выбранной области. Если полученное количество символов больше, чем общее количество символов в строке, последний символ в строке записывают как соответствующий символ.
[00115] (4) Номер строки и номер символа листового узла, соответствующие экранным координатам верхнего левого угла выбранной области, полученные посредством вышеупомянутого вычисления, преобразуют в расстояние между символом и первым символом текущего листового узла, записываемое как Y.
[00116] На шаге S6140 обрабатывают информацию о заметке.
[00117] Клиент принимает содержимое заметки, введенное пользователем, и соответствующую позицию (X или X, Y) заметки и связывает содержимое заметки с позицией заметки, упаковывает их в пакет данных и отправляет запрос на хранение информации о заметке на сервер.
[00118] На шаге S6150 информацию о заметке сохраняют.
[00119] После приема запроса на сохранение информации о заметке, отправленной клиентом, сервер сохраняет содержимое заметки и соответствующую позицию заметки в ассоциации друг с другом.
[00120] На этой стадии текущий процесс сохранения заметки завершен. Ниже приведен процесс отображения заметки.
[00121] На шаге S6160 интерфейс чтения открывают во второй раз.
[00122] Пользователь вновь открывает интерфейс чтения соответствующего потокового документа на клиенте.
[00123] На шаге S6170 отправляют запрос на возврат позиции заметки.
[00124] Модуль отображения информации о заметках на клиенте вызывает интерфейс сервера и отправляет в модуль хранения информации о заметках на сервере запрос на возврат позиций всех заметок в потоковом документе.
[00125] На шаге S6180 соответствующее содержимое заметки отображают в соответствующей позиции заметки.
[00126] После получения запроса, отправленного клиентом, на возврат позиций заметок для всех заметок в потоковом документе, модуль хранения информации о заметках на сервере в ответ на запрос возвращает позиции заметок для всех заметок потокового документа.
[00127] Когда модуль отображения информации о заметках на клиенте получает изображение следующей страницы во время процесса чтения, если имеется заметка для этой страницы, заданный маркер отображается в соответствующей позиции заметки потокового документа. Например, "воздушный шарик" отображается в верхнем левом углу соответствующей позиции (если это нетекстовый листовой узел, позиция представляет собой соответствующий узел X, а если это текстовый листовой узел, позиция представляет собой символ, соответствующий X, Y).
[00128] Когда модуль отображения информации о заметках на клиенте обнаруживает, что пользователь нажимает на "воздушный шарик", вызывается интерфейс сервера для отправки запроса на содержимое заметки для соответствующей заметки скриншотного типа в модуль хранения информации о заметках на сервере.
[00129] При приеме запроса модуль хранения информации о заметках на сервере возвращает соответствующее содержимое заметки клиенту.
[00130] После получения информации, возвращенной сервером, модуль отображения информации о заметках на клиенте может отображаться на стороне потокового документа в виде значка, и пользователь может далее щелкать по значку для ввода страницы отображения заметки, и содержимое заметки отображается в позиции заметки, соответствующей заметке скриншотного типа.
[00131] На шаге S6190 процесс завершается.
[00132] Когда пользователь не подтверждает выбранную область, операция прерывается.
[00133] Способ в этом варианте осуществления настоящего изобретения соответствует содержимому модулей в вышеупомянутом варианте осуществления системы, подробности которого не будут здесь повторяться.
[00134] Фиг. 7 представляет схематическое изображение заметки скриншотного типа, отображаемой, когда потоковый документ не переформатирован на основе способа, показанного на фиг. 6.
[00135] Фиг.8 представляет схематическое изображение заметки скриншотного типа, отображаемой после того, как потоковый документ переформатируется на основе способа, показанного на фиг. 6.
[00136] Вариант осуществления настоящего изобретения дополнительно раскрывает пользовательский терминал, содержащий: дисплей, выполненный с возможностью отображать текущую страницу потокового документа; устройство ввода, выполненное с возможностью принимать позицию заметки и информацию о содержании заметки, введенной пользователем; и устройство связи, выполненное с возможностью отправлять запрос на сохранение позиции заметки и содержимого заметки в ассоциации друг с другом, а также запрос на возврат позиции заметки и соответствующего содержимого заметки для отображения.
[00137] В примере осуществления пользовательский терминал может быть устройством для чтения электронных книг, планшетным компьютером или другим интеллектуальным электронным устройством, содержащим устройство связи, процессор, запоминающее устройство, дисплей и устройство ввода. Устройство связи, запоминающее устройство, дисплей и устройство ввода соответственно подключены к процессору, чтобы управляться процессором.
[00138] Устройство связи может быть микросхемой модуля связи ближнего действия, такой как модуль коммуникации ближнего поля (NFC), модуль радиочастотной идентификации (RFID) или модуль Bluetooth с функцией связи ближнего радиуса действия. Поскольку технология связи ближнего радиуса действия характеризуется простой конфигурацией и легкостью соединения, микросхема модуля связи ближнего радиуса действия взята в качестве примера в варианте осуществления. Процессор может быть основным вычислительным ядром в пользовательском терминале, таким как центральный процессор (CPU), встроенный контроллер (ЕС), или цифровой сигнальный процессор (DSP), или специализированная интегральная микросхема (ASIC), выполненным с возможностью специализироваться на работе с электронными книгами с совместным использованием заметок, или микросхема программируемой пользователем вентильной матрицы (FPGA).
[00139] Запоминающее устройство выполнено с возможностью сохранять электронные книги и пользовательские данные, отредактированные пользователем или с других электронных устройств. Запоминающее устройство может в частности представлять собой микросхему энергонезависимой памяти (non-volatile memory) (NVM), такую как флэш-память или программируемое постоянное запоминающее устройство. Дисплей предлагает интерфейс для отображения электронной страницы электронной книги и связанных пользовательских данных. Устройство ввода выполнено с возможностью для пользователя управлять электронной книгой и/или пользовательскими данными на интерфейсе управления. Дисплей и устройство ввода могут быть интегрированы в сенсорный экран с сенсорной панелью.
[00140] Остальное описание этого варианта осуществления настоящего изобретения соответствует описанию предшествующего варианта осуществления, подробности которого не будут повторяться в данном документе.
[00141] Фиг. 5 и 6 представляют блок-схемы, соответственно иллюстрирующие способ обработки заметки скриншотного типа для потокового документа в соответствии с примером осуществления настоящего изобретения. Способ может быть реализован, например, в системе для обработки заметки скриншотного типа, как показано на фиг. 1 или 3, но изобретение не ограничено этим. Следует отметить, что фиг. 5 и 6 являются просто схематическими иллюстрациями процессов, включенных в способ в соответствии с примером осуществления настоящего изобретения, и не предназначены для ограничения. Легко понять, что процессы, проиллюстрированные на фиг. 5 и 6, не указывают и не ограничивают хронологический порядок этих шагов. Кроме того, также легко понять, что эти процессы могут выполняться синхронно или асинхронно, например, в множестве модулей/процессов/потоков.
[00142] Из описания вышеупомянутых вариантов осуществления специалисты в данной области техники легко поймут, что примеры осуществления, описанные в настоящем документе, могут быть реализованы с помощью программного обеспечения или программного обеспечения в сочетании с необходимым аппаратным обеспечением. Следовательно, техническое решение в соответствии с вариантом осуществления настоящего изобретения может быть реализовано в форме программного продукта, который может храниться на энергонезависимом носителе данных (который может быть CD-ROM, флэш-накопителем USB, мобильным жестким диском и т.д.) или в сети. Используют ряд команд, чтобы побудить вычислительное устройство (которое может быть персональным компьютером, сервером, мобильным терминалом или сетевым устройством и т.д.) выполнить способ в соответствии с вариантом осуществления настоящего изобретения.
[00143] В способе и системе для обработки заметки скриншотного типа для потокового документа, раскрытых в настоящем документе, путем записи относительной позиции заметки скриншотного типа в нетекстовом узле и/или текстовом узле можно повысить точность отображения позиции заметки скриншотного типа в потоковом документе и улучшить пользовательский опыт.
[00144] Другие варианты осуществления изобретения будут очевидны для специалистов в данной области техники из данного описания и практики использования изобретения, раскрытого в настоящем документе. Данная заявка предназначена для охвата любых изменений, использований или адаптаций изобретения в соответствии с его общими принципами и включает в себя такие отклонения от настоящего изобретения, которые находятся в пределах известной или обычной практики в данной области техники. Предполагается, что описание и примеры будут рассматриваться только как иллюстративные, с истинными объемом и сущностью, указанными в следующей формуле изобретения.
[00145] Примеры осуществления настоящего изобретения были конкретно показаны и описаны выше. Понятно, что настоящее раскрытие не ограничено подробной конструкцией, расположением и реализацией, которые были описаны в настоящем документе. Напротив, настоящее изобретение предназначено для охвата различных модификаций и эквивалентов в пределах сущности и объема прилагаемой формулы изобретения.