|
При установке программы Shasoft eBook в системе регистрируется ActiveX
компонент Shasoft.eBook.
Для его использования в своей программе вам необходимо создать
ActiveX объект нужного типа, после чего вы можете использовать методы
этого объекта для ваших целей.
Методы ActiveX компонента
Пример использования
Методы ActiveX компонента
Пример использования
Ниже приводится текст рабочего кода на
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 - наименование книги в транслитерации
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 объекта. |