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

Вниз

Загрузка в "WordApplication1" файл из TMemoryStream   Найти похожие ветки 

 
Chaser ©   (2007-07-17 12:08) [0]

Всем привет.

Возникла необходимость загружать в "WordApplication1" файл из TMemoryStream.
Конечно можно сначала сохранять файл на диск, а потом делать "WordApplication1.Documents.Open(...)", а затем удалять фал, но то как-то некрасиво получается.
Загрузку из потока в WordApplication не нашел.
Подкажите, есть ли решение данного вопроса?


 
umbra ©   (2007-07-17 12:15) [1]


> есть ли решение данного вопроса?
>

скорее всего нет.


 
Сергей М. ©   (2007-07-17 12:16) [2]

Используй TOleContainer + TOleStream


 
Chaser ©   (2007-07-17 13:02) [3]

Через TOleContainer геморно...


 
Сергей М. ©   (2007-07-17 13:13) [4]

Чтой-то вдруг ?


 
Chaser ©   (2007-07-17 13:21) [5]

Да вот нашел всего пару примеров, и то в одном случае загружает, но не печатает, выдает ошибку.
А есть простой пример по TOleContainer + TOleStream?


 
Сергей М. ©   (2007-07-17 13:25) [6]


> А есть простой пример по TOleContainer + TOleStream?


У тебя ж их целых два, зачем тебе еще один ?


 
Chaser ©   (2007-07-17 13:28) [7]

Там не совсем то ))


 
Сергей М. ©   (2007-07-17 13:34) [8]


> Там не совсем то


Как это "не совсем то" ?
LoadFromStream там используется ? Вот от него и пляши, это ключевой метод.


 
Chaser ©   (2007-07-17 15:09) [9]

К примеру есть код:


var
 MSWord: Variant;
 ms: TMemoryStream;
begin
if OpenDialog1.Execute
then
 begin
  try
   MSWord:=CreateOleObject("Word.Application"); // для остальных
  except
   MSWord:=CreateOleObject("Word.Application.10"); // для Office XP
  end;

  // ms:=TmemoryStream.Create;
  //...
  // OleContainer1.LoadFromStream(ms);
  // ms.Free;

  MSWord.Documents.Open(OpenDialog1.FileName);
  MSWord.PrintOut;
  MSWord.Quit;
  MSWord:=Unassigned;
 end
end;


Но как загрузить в MSWord содержимое объекта OleContainer1 не понятно.
Есть какое-то присвоение? Так как у MSWord кроме Insert, Open и Add больше ничего полезного нет.


 
Сергей М. ©   (2007-07-17 15:11) [10]


> К примеру есть код


Выкинь его нафих.

Все тоже самое делает OleContainer, имеющий при этом то что тебе нужно - метод LoadFromStream.


 
Сергей М. ©   (2007-07-17 15:21) [11]


> как загрузить в MSWord содержимое объекта OleContainer1
> не понятно


Положись на OleLoad, к вызову которого в конечном итоге сводится вызов OleContainer.LoadFromStream. Он тебе и сам Word загрузит и скомандует Ворду открыть документ, хранящийся в потоке.

Поток должен быть представлен объектом TOleStream, который, в свою очередь, берет данные из интерфейса IStream, представляемого с пом. объекта класса TStreamAdapter.

Обязательно следует учесть, что стрим, хранящий образ документа и используемый для его загрузки методом TOleContainer.LoadFromStream, должен начинаться с данных в формате TStreamHeader (см. olectrns.pas)


 
Chaser ©   (2007-07-17 15:40) [12]

ОК, спасибо за информацию, буду разбираться.



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

Форум: "Основная";
Текущий архив: 2007.09.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.056 c
15-1188747945
TStas
2007-09-02 19:45
2007.09.30
Где скачать дистрибутив php?


2-1188993958
Странник81
2007-09-05 16:05
2007.09.30
Вывод файла на экран


1-1184835519
IntruderLab
2007-07-19 12:58
2007.09.30
Вопрос по компоненту TTreeView


8-1166775174
Cawa
2006-12-22 11:12
2007.09.30
Воспроизведение avi mpg mp3 из закриптованого файла


15-1188920033
Cyrax
2007-09-04 19:33
2007.09.30
Байка: мужик и справочник...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский