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

Вниз

WebBrowser и Word   Найти похожие ветки 

 
skiph   (2008-01-22 07:35) [0]

Здравствуйте.
Передо мной стоит следубщая задача. Существует некоторая база данных, в которой храняться Word-документы (это необходимо для сохранения в документах графических объектов). (Короче говоря, библиотека). Пользователь может просматривать эти документы, копироватть из них нужную информацию, но не может ее редактировать.
Для отображения документов был выбран не OLEContainer, а WebBrowser, по следующим причинам:
1. Проблемы с потерей фокуса (OLEContainer)
2. Выделить фрагмент документа (для копирования) в контейнере возможно, если документ активен (DoVerb(ovShow)), но тут возможны неосторожные действия пользователя, которые приведут к искажению документа, что потребует опять перезагрузить документ (не удобно). Опять же проблемы с потерей фокуса.
3. Кроме того при активации документа открываются панели, которые, конечно, можно отключить, но они все же немного искажают внешний вид окна.

Но при загрузке документа из базы в WebBrowser тоже возникает проблема.
     (ADOQuery.FieldByNAme("Referat") as TBlobField).SaveToStream(AStream);
      AStream.Seek(0, 0);
     (WebBrowser1.Document as
         IPersistStreamInit).Load(TStreamAdapter.Create(AStream));

При таком открытии в браузере отображается просто неформатированное содержимое doc-файла. Кроме того при переносе фокуса на WebBrowser (после загрузки документа), приложение зависает.


 
Сергей М. ©   (2008-01-22 11:43) [1]

Не проще ли хранить в базе html-версии вордовых документов ? Или конвертить эти документы в html "на лету" перед загрузкой в браузер ?


 
Плохиш ©   (2008-01-22 11:46) [2]

1. Браузер определяет тип файла по расширению, а ты ему засовываешь набор байтов и чего-то требуешь
2. IE использует OLEConteiner
3. Было бы логичным просматривать документы в ворде...


 
skiph   (2008-01-22 12:28) [3]


> Не проще ли хранить в базе html-версии вордовых документов ?

Проблема в возможных иллюстрациях. Насколько я понимаю в этом случае они должны храниться на винте?

> 3. Было бы логичным просматривать документы в ворде...

Было бы, но есть еще ряд примочек, благодаря которым документ должен отображаться в самом приложении.


 
Сергей М. ©   (2008-01-22 12:58) [4]


> skiph   (22.01.08 12:28) [3]


А что тебя в этом смущает ?


 
skiph   (2008-01-22 13:03) [5]


> А что тебя в этом смущает ?

Мне нужно, чтобы они хранились в самом документе, который я открываю


 
DiamondShark ©   (2008-01-24 12:21) [6]


> skiph   (22.01.08 12:28) [3]
>
> > Не проще ли хранить в базе html-версии вордовых документов
> ?
>
> Проблема в возможных иллюстрациях. Насколько я понимаю в
> этом случае они должны храниться на винте?

Нет, не должны.

В документе делаем так:
<IMG src="img:image1234.gif">

В приложении реализуем Pluggable Protocol Handler и регистрируем для схемы "img:".
Всё. Наши картинки могут храниться где угодно.

Про Pluggable Protocol читать тут:
http://msdn2.microsoft.com/en-us/library/aa767743(VS.85).aspx

ЗЫ.
Вообще, использовать в приложении закрытый проприетарный формат документов, который для работы требует установленного платного стороннего софта -- это бяка.



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
2-1222099743
Dmitry S
2008-09-22 20:09
2008.11.02
Как создать иконку документа.


15-1221207727
berrometr
2008-09-12 12:22
2008.11.02
Защита программ от исследования


2-1222348784
Bo$$
2008-09-25 17:19
2008.11.02
exceptions


2-1222450602
berrometr
2008-09-26 21:36
2008.11.02
Delphi 2009


15-1220722887
AlexDan
2008-09-06 21:41
2008.11.02
Экранная клавиатура..