Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2008.11.02;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
2-1222337681
Gars
2008-09-25 14:14
2008.11.02
Надо отправить POST методом сообщение


2-1222099743
Dmitry S
2008-09-22 20:09
2008.11.02
Как создать иконку документа.


2-1222422919
АндрейК
2008-09-26 13:55
2008.11.02
Как снять выделение и перейти в конец строки в Edit1


4-1197879873
андр
2007-12-17 11:24
2008.11.02
USB Flash


15-1220608809
quake
2008-09-05 14:00
2008.11.02
Тип файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский