Перейти к содержанию
Fire Monkey от А до Я
  • 0

Замена текста в Word и OpenDocument


Шамсуддин

Вопрос

Доброго времени суток!

Сделал простенький компонент для замены текста в документах Word (docx) и OpenDocument (odt). Особенностью данного компонента является отсутствие необходимости какого-либо дополнительного ПО типа MS Office или OpenOffice и использует только встроенные библиотеки. В связи с чем он может работать на различных платформах (но ещё не проверял :) ).

DocumentProcessing.zip

Как использовать:

uses
  DocumentProcessing;

...

procedure TForm2.Button1Click(Sender: TObject);
var
  Document: TDocumentProcessor;
begin
  Document:= TDocumentProcessor.Create(Self);

  Document.FilePath:= 'D:\test.docx';
  Document.Open(TDocumentKind.dkDocx);
  Document.ReplaceText('Familiya', 'Cat');
  Document.Save;

  Document.Open('D:\test.odt', TDocumentKind.dkOdt);
  Document.ReplaceText('Familiya', 'Cat', [rfReplaceAll]);
  Document.Save;
end;

 

Немного о принципе работы:

Спойлер

Думаю стоит немного объяснить принцип работы компонента.

Дело в том, что в документах одно слово может храниться частями. Часто это бывает, если использовать использовать стили на части слова, например:

Firemonkey

В документе данное слово будет разделено на "Fire" и "monkey". Данному компоненту это не помеха, но стоит знать, что при замене вставленное слово будет иметь стиль левой части, т.е. если мы заменим "Firemonkey" на "Delphi", то отображаться он будет следующим образом:

Delphi

Проблемы:

Спойлер

1. Не знаю как реализовать чувствительность к регистру (связано с использованием функции IndexOf)

 

Изменено пользователем Шамсуддин
Улучшена производительность
Ссылка на комментарий

Рекомендуемые сообщения

Ответов пока нет

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...