Конференция "Основная" » WebBrowser и Word [D6, WinXP]
 
  • skiph (22.01.08 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 (после загрузки документа), приложение зависает.
  • Сергей М. © (22.01.08 11:43) [1]
    Не проще ли хранить в базе html-версии вордовых документов ? Или конвертить эти документы в html "на лету" перед загрузкой в браузер ?
  • Плохиш © (22.01.08 11:46) [2]
    1. Браузер определяет тип файла по расширению, а ты ему засовываешь набор байтов и чего-то требуешь
    2. IE использует OLEConteiner
    3. Было бы логичным просматривать документы в ворде...
  • skiph (22.01.08 12:28) [3]

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

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

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

    Было бы, но есть еще ряд примочек, благодаря которым документ должен отображаться в самом приложении.
  • Сергей М. © (22.01.08 12:58) [4]

    > skiph   (22.01.08 12:28) [3]


    А что тебя в этом смущает ?
  • skiph (22.01.08 13:03) [5]

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

    Мне нужно, чтобы они хранились в самом документе, который я открываю
  • DiamondShark © (24.01.08 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

    ЗЫ.
    Вообще, использовать в приложении закрытый проприетарный формат документов, который для работы требует установленного платного стороннего софта -- это бяка.
 
Конференция "Основная" » WebBrowser и Word [D6, WinXP]
Есть новые Нет новых   [134482   +34][b:0][p:0.001]