Shasoft eBook (читалка книг для сотового)

Shasoft eBook (читалка книг для сотового)

Навигация
Счетчики
Cпoнcopы

При установке программы Shasoft eBook в системе регистрируется ActiveX компонент Shasoft.eBook. Для его использования в своей программе вам необходимо создать ActiveX объект нужного типа, после чего вы можете использовать методы этого объекта для ваших целей.

Методы ActiveX компонента

  • SetText - Метод для установки текста книги
  • SetImage - Метод для установки иллюстраций (картинок)
  • SetImageFromClipboard - Метод для установки иллюстраций из буфера обмена
  • SetImageFromFile - Метод для установки иллюстраций из файла
  • SetBold - Метод для установки атрибута текста жирный
  • SetItalic - Метод для установки атрибута текста курсив
  • SetUnderline - Метод для установки атрибута текста подчеркнутый
  • SetStrikeout - Метод для установки атрибута текста зачеркнутый
  • SetColor - Метод для установки цвета текста
  • SetProperty - Метод для установки параметра книги
  • SetContent - Метод для установки уровня заголовка для текста
  • RunWizard - Запуск мастера создания книги
  • SetRtfTextFromClipboard - Содержимое книги в формате RTF взять из буфера обмена

Пример использования

Ниже приводится текст рабочего кода на JavaScript, который указывает текст книги и некоторые атрибуты, а затем вызывает мастер создания.

 // Создать ActiveX объект
 var SeBook = new ActiveXObject("Shasoft.eBook"); 
 // Установить текст книги
 SeBook.SetText(0,"Этот текст будет в книге",24);
 // Установить атрибуты текста
 SeBook.SetBold(0,3,1);
 SeBook.SetItalic(5,9,1);
 // Установить автора
 SeBook.SetProperty("AUTHOR","Shasoft");
 // Установить наименование
 SeBook.SetProperty("NAME","Пример использования компонента");
 // Запустить мастер создания книги
 SeBook.RunWizard(0);

SetText(LONG pos, BSTR text, LONG length) - Метод для установки текста книги

Параметры
   LONG pos - позиция начала текста (нумерация с 0)
   BSTR text - текст
   LONG length - длинна текста

Дополнительная информация
Может вызываться сколько угодно раз. Все незаполненные позиции текста схлопываются. К примеру если вы вызвали функцию таким вот образом:
SetText(0,"A",1);
SetText(256,"Z",1);
то в результате текст книги будет содержать текст "AZ", а все позиции с 1 по 255 включительно быдут удалены, так как они остались незаполненными.

SetImage(LONG pos, LONG hBitmap) - Метод для установки иллюстраций (картинок)

Параметры
   LONG pos - позиция картинки
   LONG hBitmap - идентификатор картинки (HBITMAP)


SetImageFromClipboard(LONG pos) - Метод для установки иллюстраций из буфера обмена

Параметры
   LONG pos - позиция картинки


SetImageFromFile(LONG pos, BSTR FileName) - Метод для установки иллюстраций из файла

Параметры
   LONG pos - позиция картинки
   BSTR FileName - файл с картинкой

Дополнительная информация
Поддерживаются форматы: BMP, PNG, GIF, JPEG

SetBold(LONG start, LONG end, LONG flag) - Метод для установки атрибута текста жирный

Параметры
   LONG start - начальная позиция
   LONG end - конечная позиция
   LONG flag - значение: 1-установить атрибут / 0-сбросить атрибут


SetItalic(LONG start, LONG end, LONG flag) - Метод для установки атрибута текста курсив

Параметры
   LONG start - начальная позиция
   LONG end - конечная позиция
   LONG flag - значение: 1-установить атрибут / 0-сбросить атрибут


SetUnderline(LONG start, LONG end, LONG flag) - Метод для установки атрибута текста подчеркнутый

Параметры
   LONG start - начальная позиция
   LONG end - конечная позиция
   LONG flag - значение: 1-установить атрибут / 0-сбросить атрибут


SetStrikeout(LONG start, LONG end, LONG flag) - Метод для установки атрибута текста зачеркнутый

Параметры
   LONG start - начальная позиция
   LONG end - конечная позиция
   LONG flag - значение: 1-установить атрибут / 0-сбросить атрибут


SetColor(LONG start, LONG end, LONG Rval, LONG Gval, LONG Bval) - Метод для установки цвета текста

Параметры
   LONG start - начальная позиция
   LONG end - конечная позиция
   LONG Rval - значение КРАСНОЙ состовляющей компоненты цвета (0-255)
   LONG Gval - значение ЗЕЛЕНОЙ состовляющей компоненты цвета (0-255)
   LONG Bval - значение СИНИЙ состовляющей компоненты цвета (0-255)


SetProperty(BSTR name, BSTR val) - Метод для установки параметра книги

Параметры
   BSTR name - название параметра
   BSTR val - значение параметра

Дополнительная информация
Список доступных параметров:
  • AUTHOR - автор книги
  • NAME - наименование книги
  • COMMENT - комментарий книги
  • NAMEID - наименование книги в транслитерации
  • LANG - язык, на котором написана книга. Двухбуквенное обозначение по стандарту ISO 639-1
  • SERIESNAME - наименование серии (цикла)
  • SERIESNN - номер книги в серии (цикле). Десятичное число.

SetContent(LONG start, LONG end, LONG level) - Метод для установки уровня заголовка для текста

Параметры
   LONG start - начальная позиция
   LONG end - конечная позиция
   LONG level - уровень заголовка. 0 - обычный текст.


RunWizard(LONG hWnd, LONG *res) - Запуск мастера создания книги

Параметры
   LONG hWnd - идентификатор родительского окна (HWND). Передавайте 0, если родительское окно отсутствует или вы его не знаете.
   LONG *res - Результат работы мастера. 1-всё Ok / 0-произошла ошибка. Обращаем ваше внимание, что на языках высокого уровня указывать этот параметр не надо (к примеру на JavaScript см. пример), а на языках низкого уровня (к примеру Microsoft Visual C++) нужно его указывать.


SetRtfTextFromClipboard() - Содержимое книги в формате RTF взять из буфера обмена
Дополнительная информация
Многие приложения позволяют копировать в буфер обмена Windows текст в формате RTF, который поддерживает атрибуты текста и картинки. Эта функция позволит вытащить всё содержимое книги вместе с атрибутами из буфера обмена Windows.
В идеале всё что нужно для создания книги из какого-либо редактора, это скопировать весь текст в буфер обмена в формате RTF, затем вызвать эту функцию, после чего можно сразу запускать мастер создания книги с помощью метода RunWizard
К сожалению наш мир не идеален и формат RTF не поддерживает работу с содержанием. Так как в разных программам содержание реализовано по-разному, то был придуман универсальный интерфейс для передачи пунктов содержания через формат RTF. Перед каждым пунктом содержания должен содержаться спец-ТЭГ <$H#LNN>, где L - уровень заголовка (одна цифра), NN - длинна пункта содержания (любое количество цифр. Однако, надо помнить, что длинна пункта содержания ограничена 256 символами).
К примеру экспорт данных из Microsoft Word происходит по следующей схеме:
  • Вставляем перед всеми заголовками спец-тэги
  • Копируем весь текст в буфер обмена
  • Вызываем метод SetRtfTextFromClipboard
  • Убираем все добавленные спец-тэги
  • Вызываем метод RunWizard
Этот алгоритм весьма простой и, думается, подойдет для многих разработчиков, которые захотят из своего редактора создавать книгу с помощью разработанного нами ActiveX объекта.