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

Вниз

Как экспортировать текст вместе с графикой из MS Word   Найти похожие ветки 

 
Chudaks ©   (2005-01-27 08:58) [0]

Господа Мастера Делфи подскажите как можно экспортировать текст вместе с графикой из MS Word не нарушив при этом структуру текста. Если существует такая компонента подскажите где можно будет ее взять.


 
Александр Иванов ©   (2005-01-27 09:40) [1]

Экспортировать куда?


 
ЮЮ ©   (2005-01-27 09:49) [2]

>экспортировать ... из MS Word
Копируй нужное в буфер обмена. Экспорт состоялся. Теперь, пожалуй, проблемо в импорте :)


 
chudaks ©   (2005-01-27 11:41) [3]

Задача такая необходимо программно экспортировать текст с графикой в базу данных.


 
ЮЮ ©   (2005-01-27 11:43) [4]

в базу данных можно сохранить, а дальше что с этим текстом делать собираешься? Сохраняй весь файл, просматривать/редактировать будешь опять же в MS Word


 
Arm79 ©   (2005-01-27 11:50) [5]

делается достаточно просто. текст и картинки, набранные (вставленные) в Ворде сохрани в файл, который потом и вставишь в БД в поле BLOB.


 
Chudaks ©   (2005-01-27 18:13) [6]

Пишется такая программа:
1) экспортируются вопросы и ответы (графика и текст)из MS WORD
2) каждый вопрос, ответ записывается в отдельно в БД


 
MakedoneZ ©   (2005-01-27 19:01) [7]

OLE


 
ЮЮ ©   (2005-01-28 06:10) [8]

Ты об импорте сначала полумай, а то наэкспортируешь, а что потом будешь делать с экспортным товаром? Допустим тебе это удалось. Дальше что собираешься использовать? Если, например, опять же MS Word, то, естестественно, достаточно сохранить Word-овскую часть буфера обмена. Если же, например, TRichEdit, то сначала убедись, что перенеся даже с помощью буфера обмена из MS Word в TRichEdit получишь в последнем именно то, что скопировал в Word-е :)


 
Shirson   (2005-01-28 09:22) [9]

var
H1,H49163:Thandle;
MS1,MS49163:TMemoryStream;
B1,B49163:pByte;
L1,L49163:longint;
msWord:Variant;
begin
  MsWord:=CreateOleObject("Word.Application");
  MsWord.Documents.Open(FileName:="My_doc.doc");
  clipboard.clear;
  MsWord.ActiveDocument.Range(d1,d2).copy; //Это копирование куска текста из Ворда в клипборд. Если тебе нужен весь текст сразу, замени Range (хелп по ворду смотри)

  adoquery1.close;
  adoquery1.sql.text:="insert into MS_DOC_TABLE (Doc,RawText) values(:Doc,:RawText)";

  ClipBoard.Open;

  MS1:=TMemoryStream.create;
  MS49163:=TMemoryStream.create;

  H1:=Clipboard.GetAsHandle(1); //содержимое клипборда в формате голого текста (если ненужно - выкинь)
  H49163:=Clipboard.GetAsHandle(49163); //содержимое клипборда в формате ворда (MSW2000, хотя, 97 тоже пашет)

  B1:=GlobalLock(H1); // Если не знаешь что это, просто скопируй - объяснять долго :)
  B49163:=GlobalLock(H49163);

  L1:=globalsize(H1); // Размеры буферов для голого текста
  L49163:=globalsize(H49163); // и для вордовского формата

  MS1.writebuffer(B1^,L1); // запись инфы из буферов в потоки. соотвественно
  MS49163.writebuffer(B49163^,L49163);

  adoquery1.Parameters.ParamByName("Doc").LoadFromStream(MS49163,ftBlob); //Пишем в поле в вордовском формате. Поле типа image (у меня MSSQL 8.0)
  adoquery1.Parameters.ParamByName("RawText").LoadFromStream(MS1,ftString); //Пишем в поле в текстовом формате
  Clipboard.close;
  adoquery1.ExecSQL;
  MS1.Free;
  MS49163.Free;
  GlobalUnlock(H1);
  GlobalUnlock(H49163);
End;

Всё.

Выгребать еще проще:

TBlobField(adoquery1.FieldByName("doc")).SaveToFile("FromDB.doc");

P.S. Если же тебе вообще нужно хранилище для вордовских файлов, всмысле as is - пиши в базу через потоки. Так всё что угодно можно писать, хоть ворд, хоть автокад, хоть своп-файлы.
Создаёшь поток, грузишь в него файл и зашвыриваешь в базу.
Приведенный вариант нужен, если есть надобность засовывать документ не цельным кусоком, а по частям или с предобработкой.



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

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

Наверх




Память: 0.49 MB
Время: 0.032 c
6-1101990383
Змей
2004-12-02 15:26
2005.02.13
Ошибка при отключении от сервера


14-1106293312
X9
2005-01-21 10:41
2005.02.13
Подскажите электронный книжный магазин


4-1103695704
race1
2004-12-22 09:08
2005.02.13
DrawText


1-1107093126
dms_main
2005-01-30 16:52
2005.02.13
Console Application


3-1105441655
Dr. Andrey
2005-01-11 14:07
2005.02.13
Из mdb в dbf