Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

TOLEContainer + MSWord = сохранить в память как HTML   Найти похожие ветки 

 
BPK ©   (2005-09-29 15:32) [0]

Имею MSWord, вставленный в TOLEContainer, находящийся в дочернем MDI-окне. Нужно по нажатию моей собственной кнопки сохранить документ, но не на диск, а в буфер (как частный случай - поток), причём ЖЕЛАТЕЛЬНО - В HTML, чтобы содержимое буфера было читаемым невооружённым глазом и хранить в БД как текст.

Основные задачи
1. Вставить Microsoft Word в окно редактирования элемента базы данных, чтобы Word занимал только часть окна. Остальное будут занимать всякие TEdit"ы "Кому", "От кого", "Тема"...
2. MSWord должен иметь привычный вид, включая размещение панелей инструментов так, как их расставил пользователь, и должен управляться привычными сочетаниями клавиш. Хотя, панели инструментов можно и выключить, но так, чтобы положение панелей не сохранилось, чтобы при запуске собственно Ворда как отдельного редактора, панели не "съехали" со своих мест.
3. Все файловые операции в MSWord должны быть заблокированы. Ещё лучше - перехватить операцию сохранения документа, чтобы её обрабатывало приложение-контейнер
4. Вместо сохранения документа приложение дожно брать текст из MSWord и сохранять его в базе данных
5. При печати документа текст, хранящийся в базе данных, нужно подставлять как кусок в генерируемый налету средствами VBA шаблон печатного документа, промеж заголовка и подписей. На худой конец, можно, конечно, загрузить документ из БД и при печати вставить в него заголовки и подписи.


 
BPK ©   (2005-09-29 16:13) [1]

Неприятная новость: Если загрузить данные, сохранённые с помощью SaveToStream, то они не загружаются в MSWord, а заменяют его в TOLEContainer. Куда-то пропадают все панели и органы управления MSWord.


 
YurikGL ©   (2005-09-29 20:09) [2]


>  чтобы содержимое буфера было читаемым невооружённым глазом
> и хранить в БД как текст.

Из буфера чтение каким образом произоводиться будет?
Вообще, советую попробовать что-то вроде
s:string;
s:=WordDocument.range(1,WordDocument.Characters.Count).text;
таким образом в s получишь текст (без всякого форматирования) в строчке. Далее можешь передавать ее в буфер или сохранять в БД.



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.136 c
15-1166556540
PHPDeveloper
2006-12-19 22:29
2007.01.14
Indy


2-1166632717
Grey-SPB
2006-12-20 19:38
2007.01.14
Кнопка отмены или выхода (без закрытия всей прогр.)


6-1144165656
anton773
2006-04-04 19:47
2007.01.14
удаление почтового сообщения


2-1166952419
Zver1992
2006-12-24 12:26
2007.01.14
Отключение контроля ошибок


3-1161722615
diofant
2006-10-25 00:43
2007.01.14
Пример работы с ADO через CreateOleObject