Главная страница
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.094 c
2-1166701524
Vovan #2
2006-12-21 14:45
2007.01.14
Вместо локальной функции как параметра


3-1161663050
alucard
2006-10-24 08:10
2007.01.14
Как передать переменную в Rave отчёт?


8-1148479532
Костя_909
2006-05-24 18:05
2007.01.14
В строке buf[0]:= virtualalloc(... Delphi пишет Operator not appl


2-1166708201
RomanH
2006-12-21 16:36
2007.01.14
Сортировка в JvDBGrid


15-1166895855
Дмитрий Игоревич
2006-12-23 20:44
2007.01.14
Delphi "рухнула"