Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.01.2017, 09:26   #1
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
Вопрос извлечь фотографии из doc (docx) файла

Привет
Прошу помочь
test1.doc
нужно чтобы находил все фотографии внутри файла и сохранил файлы в папку d:/test
а вместо фотографии который сохранил написал название фотографии который сохранил

ОЧЕНЬ ПРОШУ ДАЙТЕ КОД
НЕ ПИШИТЕ ищи в google - e и тд
ЗАРАНЕЕ СПАСИБО
mr_xxx вне форума Ответить с цитированием
Старый 31.01.2017, 09:46   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от mr_xxx Посмотреть сообщение
нужно чтобы находил все фотографии внутри файла и сохранил файлы в папку d:/test
и это всё на Delphi?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.01.2017, 09:51   #3
mr_xxx
Пользователь
 
Регистрация: 22.03.2012
Сообщений: 99
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
и это всё на Delphi?
да пожалуйста

нашел который удаляет
Код:
program WordDeletePicture; 
 
{$APPTYPE CONSOLE} 
 
uses 
  SysUtils, 
  ActiveX, OleServer, WordXP, Variants; 
 
var 
  DocName  : OleVariant; 
  DocName1 : OleVariant; 
  wAPP     : TWordApplication; 
  WordApp  : OleVariant; 
  Doc      : OleVariant; 
  i        : integer; 
begin 
  CoInitialize(nil); 
 
  DocName  := 'C:\Delphi\Тесты\DeletePicture\Это файл с рисунками.doc'; 
  DocName1 := 'C:\Delphi\Тесты\DeletePicture\Это файл без рисунков.doc'; 
 
  try 
    try 
      wApp := TWordApplication.Create(nil); 
      wApp.Connect; 
       
      WordApp := wApp.Application; 
      Doc := WordApp.Documents.Open(DocName); 
 
      for i := Doc.InlineShapes.Count downto 1 do 
      begin 
        Doc.InlineShapes.Item(i).Delete; 
      end; 
       
      Doc.SaveAs(DocName1); 
      Doc.Close; 
 
      Doc     := UnAssigned; 
      WordApp := UnAssigned; 
 
      if wApp.Documents.Count = 0 then wApp.Quit else wApp.Disconnect; 
    finally 
       if Assigned(wApp) then FreeAndNil(wApp); 
    end; 
  except 
    on E:Exception do 
      Writeln(E.Classname, ': ', E.Message); 
  end; 
 
  CoUninitialize; 
end.
а мне нужно который извлекает фото и вместо них пишет имя файла
mr_xxx вне форума Ответить с цитированием
Старый 31.01.2017, 10:20   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

понятно. задача не скажу, что простая и тривиальная...

попробуйте взять код отсюда:
(см. Получение рисунка из документа)
Цитата:
(с) Albinos_x
Код:

Получение рисунка из документа



Рисунок можно не только заносить, но и получать из Word. Вставленные в Word формулы, также являются рисунками. 
Покажу пример получение рисунка со свойством обтекания текста – в тексте:

var c, i:Integer;
  OlF:OLEFormat;

…

WordDocument1.Content.Select;

// количество рисунков

c:=WordDocument1.Range.InlineShapes.Count;

Caption:=inttostr(‘количество рисунков - ’+c);

for i:=1 to c do
  begin
  WordDocument1.Range.InlineShapes.Item(i).Range.CopyAsPicture;

// для примера сделано только для 2-х рисунков

// рисунок 1
  if i=1 then
  Image1.Picture.Assign(Clipboard);
  Application.ProcessMessages;

// рисунок 2
  if i=2 then
  Image2.Picture.Assign(Clipboard);

// здесь записываем в memo1 тип и формат объекта
  OlF:=WordApplication1.Selection.InlineShapes.Item(i).OLEFormat;
  s:='';
  s:=Inttostr(WordApplication1.Selection.InlineShapes.Item(i).type_);
  if WordApplication1.Selection.InlineShapes.Item(i).OLEFormat<>nil then
  begin
  s:=s+' = ' +OlF.ClassType;
  end;
  memo1.Lines.add(s);
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие (ms word) .doc,.docx в приложении Qt Linux ncAlex Qt и кроссплатформенное программирование С/С++ 0 08.08.2014 23:32
Конвертация docx в doc Delphi_ProGer Общие вопросы Delphi 7 11.06.2012 09:01
*.DOC в *.DOCX IP (O IM /A IH Microsoft Office Word 7 31.10.2010 21:12
Как сохранить .doc в docx? beda Microsoft Office Word 7 24.06.2010 15:37
Открытие .doc или .docx в MS Word MADDAN Microsoft Office Word 4 16.09.2008 21:55