Система и способ обработки заметки скриншотного типа для потокового документа

1. Система для обработки заметки скриншотного типа для потокового документа, содержащая:
модуль обработки жестов, выполненный с возможностью записывать экранные координаты выбранной области заданной формы, определенной жестом на текущей странице потокового документа;
модуль вычисления позиции заметки, выполненный с возможностью принимать экранные координаты выбранной области заданной формы и преобразовывать экранные координаты заданной позиции в выбранной области в относительную позицию листового узла в потоковом документе; и
модуль хранения информации о заметках, выполненный с возможностью сохранять относительную позицию листового узла и экранные координаты выбранной области в качестве информации о позиции заметки.
2. Система по п. 1, в которой заданная форма представляет собой четырехугольник, а экранные координаты выбранной области представляют собой экранные координаты четырех точек верхнего левого угла, верхнего правого угла, нижнего левого угла и нижнего правого угла четырехугольника.
3. Система по п. 2, в которой заданная позиция представляет собой экранные координаты верхнего левого угла выбранной области.
4. Система по п. 3, в которой модуль вычисления позиции заметки содержит:
блок сопоставления листовых узлов, выполненный с возможностью вычислять расстояние между экранными координатами верхнего левого угла и листовым узлом на текущей странице потокового документа и принимать листовой узел с минимальным расстоянием в качестве листового узла, соответствующего текущей заметке скриншотного типа;
решающий блок, выполненный с возможностью определять, является ли соответствующий листовой узел текстовым узлом; и
блок определения позиции заметки, выполненный с возможностью: когда листовой узел является нетекстовым узлом, принимать номер узла, соответствующий листовому узлу, в качестве относительной позиции листового узла; а когда листовой узел является текстовым узлом, принимать номер узла, соответствующий листовому узлу, и относительную позицию символа в листовом узле с минимальным расстоянием до экранных координат верхнего левого угла в качестве относительной позиции листового узла.
5. Система по п. 4, в которой блок определения позиции заметки содержит:
подблок вычисления позиции строки, выполненный с возможностью определять, в соответствии с продольным расстоянием между экранными координатами верхнего левого угла и вершиной листового узла и в соответствии с высотой строки для каждой строки листового узла, позицию строки экранных координат верхнего левого угла в листовом узле; и
подблок вычисления позиции столбца, выполненный с возможностью определять, в соответствии с поперечным расстоянием между экранными координатами верхнего левого угла и крайним левым краем листового узла и в соответствии с горизонтальной шириной каждого символа листового узла, символ листового узла, соответствующий экранным координатам верхнего левого угла.
6. Система по п. 5, в которой блок определения позиции заметки дополнительно содержит:
подблок вычисления относительной позиции, выполненный с возможностью вычислять расстояние между соответствующим символом и первым символом листового узла и принимать это расстояние в качестве относительной позиции символа в листовом узле.
7. Система по п. 1, дополнительно содержащая:
модуль ввода заметок, выполненный с возможностью принимать содержимое заметки, введенное пользователем в выбранной области, и вводить содержимое заметки в модуль хранения информации о заметках;
при этом модуль хранения информации о заметках выполнен с возможностью сохранять позицию заметки и содержимое заметки в ассоциации друг с другом.
8. Система по п. 7, дополнительно содержащая:
модуль отображения информации о заметках, выполненный с возможностью отображать содержимое заметки в позиции заметки.
9. Способ обработки заметки скриншотного типа для потокового документа, включающий в себя:
запись экранных координат выбранной области заданной формы, определенной жестом на текущей странице потокового документа;
прием экранных координат выбранной области заданной формы и преобразование экранных координат заданной позиции в выбранной области в относительную позицию листового узла в потоковом документе; и
сохранение относительной позиции листового узла и экранных координат выбранной области в качестве информации о позиции заметки.
10. Способ по п. 9, в котором заданная форма представляет собой четырехугольник, а экранные координаты выбранной области представляют собой экранные координаты четырех точек верхнего левого угла, верхнего правого угла, нижнего левого угла и нижнего правого угла четырехугольника.
11. Способ по п. 10, в котором заданная позиция представляет собой экранные координаты верхнего левого угла выбранной области.
12. Способ по п. 11, в котором преобразование экранных координат заданной позиции в выбранной области в относительную позицию листового узла в потоковом документе включает в себя:
вычисление расстояния между экранными координатами верхнего левого угла и листового узла на текущей странице потокового документа и принятие листового узла с минимальным расстоянием в качестве листового узла, соответствующего текущей заметке скриншотного типа;
определение, является ли соответствующий листовой узел текстовым узлом;
когда листовой узел является нетекстовым узлом, принятие номера узла, соответствующего листовому узлу, в качестве относительной позиции листового узла; и
когда листовой узел является текстовым узлом, принятие номера узла, соответствующего листовому узлу, и относительной позиции символа в листовом узле с минимальным расстоянием до экранных координат верхнего левого угла в качестве относительной позиции листового узла.
13. Способ по п. 12, в котором принятие номера узла листового узла, соответствующего экранным координатам верхнего левого угла, и относительной позиции соответствующего символа в листовом узле в качестве позиции заметки включает в себя:
определение, в соответствии с продольным расстоянием между экранными координатами верхнего левого угла и вершиной листового узла и в соответствии с высотой строки для каждой строки листового узла, позиции строки экранных координат верхнего левого угла в листовом узле;
определение, в соответствии с поперечным расстоянием между экранными координатами верхнего левого угла и крайним левым краем листового узла и в соответствии с горизонтальной шириной каждого символа листового узла, символа листового узла, соответствующего экранным координатам верхнего левого угла; и
вычисление расстояния между соответствующим символом и первым символом листового узла, и принятие этого расстояния в качестве относительной позиции символа в листовом узле.
14. Способ по п. 9, дополнительно включающий в себя:
прием содержимого заметки, введенного пользователем в выбранной области; и хранение позиции заметки и содержимого заметки в ассоциации друг с другом на сервере.
15. Способ по п. 14, дополнительно включающий в себя:
отправку на сервер запроса на возврат всех позиций заметок для потокового документа;
при рендеринге следующей страницы потокового документа, в случае, когда страница имеет заметку, отображение заданного маркера в заданной точке соответствующей позиции заметки;
при приеме от пользователя нажатия на заданный маркер, отправку запроса на возврат соответствующего содержимого заметки на сервер; и
после получения содержимого заметки, возвращенного с сервера, отображение содержимого заметки в позиции заметки потокового документа в заданной форме.