Здравствуйте, IceHand, Вы писали:
IH>Всем привет! IH>Может кто знает как добавить редактор формул worda в свой редактор HTML файлов? IH>Или есть какаянибудь библиотека?
Dll называется eeintl.dll и лежит где-нибудь типа
..Program Files\Common Files\Microsoft Shared\Equation\1049
А вообще это OLE — обьект, он и предназначен, чтобы вставлять его в свои программы.
Здравствуйте, IceHand, Вы писали:
IH>Всем привет! IH>Может кто знает как добавить редактор формул worda в свой редактор HTML файлов? IH>Или есть какаянибудь библиотека?
Я думаю так. В HTML тебе внедренный объект-формулу хранить не дадут. А если и дадут — смысла мало, т.к. Equation Editor и Word не везде все-таки стоят. Но формула легко экспортируется в EMF-формат, а уже его можно как картинку подключить. Иначе говоря, формулу редактировать сможет лишь редактор, а юзверь будет картинку наблюдать. Если такое решение интересует, можно обсудить его. Тут еще небольшой вопрос встает — придется сам объект формулы хранить на стороне редактора (среди исходников сайта) — но это, по-моему, вполне решаемо.
Другой существенный вопрос — редактор сам написал или готовый юзаешь?
Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Здравствуйте, Grey2002, Вы писали:
G>Здравствуйте, IceHand, Вы писали:
IH>>Всем привет! IH>>Может кто знает как добавить редактор формул worda в свой редактор HTML файлов? IH>>Или есть какаянибудь библиотека?
G>Dll называется eeintl.dll и лежит где-нибудь типа G>..Program Files\Common Files\Microsoft Shared\Equation\1049
G>А вообще это OLE — обьект, он и предназначен, чтобы вставлять его в свои программы.
А есть ли что-нить подобное, чтолько чтобы парсило сами формулы.
Здравствуйте, SmD, Вы писали:
G>>А вообще это OLE — обьект, он и предназначен, чтобы вставлять его в свои программы.
SmD>А есть ли что-нить подобное, чтолько чтобы парсило сами формулы.
OLE — это MS-овский стандарт взаимодействия программ. Object Linkung und Embeddung
Реализован через COM. Обеспечивается модулями операционной системы.
Excel, естественно, его поддерживает. (См, например, Insert/Object... | Вставка/Объект...)
Здравствуйте, IceHand, Вы писали:
IH>Всем привет! IH>Может кто знает как добавить редактор формул worda в свой редактор HTML файлов? IH>Или есть какаянибудь библиотека?
А о MathML никто не думал? NetScape 7.1 и Mozilla его поддерживают. Internet Explorer, кривовато, но тоже. Если хотите узнать, что в Вашем броузере показывается сходите сюда.
Я, кстати, как раз собирался поставить вопрос об использовании MathML на RSDN.
Здравствуйте, Slicer [Wirkwood], Вы писали: SW>Я думаю так. В HTML тебе внедренный объект-формулу хранить не дадут. А если и дадут — смысла мало, т.к. Equation Editor и Word не везде все-таки стоят. Но формула легко экспортируется в EMF-формат, а уже его можно как картинку подключить. Иначе говоря, формулу редактировать сможет лишь редактор, а юзверь будет картинку наблюдать. Если такое решение интересует, можно обсудить его. Тут еще небольшой вопрос встает — придется сам объект формулы хранить на стороне редактора (среди исходников сайта) — но это, по-моему, вполне решаемо. SW>Другой существенный вопрос — редактор сам написал или готовый юзаешь? SW>Slicer
Редактор написал сам но хочу штобы и формулы можно было вставлять остальное вроде уже все есть. В моем случае подойдет и если юзвер будет картинку наблюдать. Но как это делать???
Здравствуйте, IceHand, Вы писали:
IH>Редактор написал сам но хочу штобы и формулы можно было вставлять остальное вроде уже все есть. В моем случае подойдет и если юзвер будет картинку наблюдать. Но как это делать???
Значит, так. Я сам на дельпхях ваяю, так что мой первый совет будет
относиться к ним.
Создаем TOleContainer, в нем создаем (на этапе дизайна легко, на
этапе работы нужно создать OLE объект "Equation") объект-выражение.
Редактирование со стороны юзера — стандартным для TOleCOntainer
образом (т.е. по умолчанию — двойным кликом, или же можно через
контекстное меню).
Сохранение и загрузку легко позволяет выполнить сам TOleContainer:
Save:
OleContainer1.SaveToFile('c:\fle.fle');
Load:
OleContainer1.DestroyObject;
OleContainer1.LoadFromFile('c:\fle.fle');
По желанию можно на SaveToStream заменить.
Осталось превратить в BMP (или лучше сначала в EMF).
А вот это я когда-то, вроде, делал, но уже не помню. Лл-юю-ди-и! Как превратить native-представление объекта в metafile-представление (когда это возможно)?
Word ведь это делает с метафайлом!
----
Если не Дельфи:
Если ваш тамошний СOleContainer держит сохранение и загрузку, проблем
быть не должно (если вдруг Вы пишете на C и не знаете, как создать объект
в тамошнем OleContainer и как дать потом юзеру его редактировать —
спросите об этом кого-нибудь еще. Я не знаю).
Теперь — если контейнер не поддерживает сохранение и загрузку . Так вот,
придется юзать ole2.h и objidl.h
Save (переводите на C сами):
var
I:IPersistStorage;
S:IStorage;
I:=OleContainer1.OleObjectInterface as IPersistStorage;
//Ну то есть надо у содержащегося в контейнере объекта интерфейс
// IPersistStorage;
StgCreateDocfile('c:\stor.fle',STGM_READWRITE or STGM_SHARE_EXCLUSIVE or
STGM_CREATE,0,S);
//Создаем хранилище
OleSave(I,S,false);
I.HandsOffStorage;
I.SaveCompleted(S);
S:=nil; //Типа освобождаем интерфейсы
I:=nil;
Load:
var
I:IPersistStorage;
S:IStorage;
C:IOleClientSite;
IUnk:IUnknown;
I:=OleContainer1.OleObjectInterface as IPersistStorage;
StgOpenStorage('c:\stor.fle',nil,
STGM_READ or STGM_SHARE_EXCLUSIVE,nil,0,S);
OleContainer1.GetInterface(IOleClientSite,C);
//У контейнера надо получить интерфейс IOleClientSite
OleLoad(S,IUnknown,C,IUnk);
OleRun(IUnk); //Строго говоря, не уверен, что этот шаг необходим
I:=nil;
S:=nil;
Ну и та же проблема с конвертированием в EMF.
Пробуйте!
Slicer
Специалист — это варвар, невежество которого не всесторонне :)
Здравствуйте, c-smile, Вы писали:
CS>Здравствуйте, IceHand, Вы писали: CS>Вопрос можно?
CS>Редактирование WYSIWYG или html source?
Редактироваение WYSIWYG.