Перейти к содержанию
  • Регистрация
  • 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 эмодзи.

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

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

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


  • Похожий контент

    • От SIARHEI RAHOUSKI
      Как в самой форме созданной в Delphi XE3 открыть word документ?
    • От Pax Beach
      Сделал пример приложения для работы с Microsoft Word из приложения Delphi.
      Такое приложение может использоваться для обмена данными между объектами семейства Microsoft Office.
       
      Исходные коды приложения помогут вам понять, как работать с объектной моделью Microsoft Word.
      Чтобы лучше разобраться с нюансами Word, предлагаю ознакомиться со справочником Word VBA reference на MSDN.
      Проект создан в среде FireMonkey Delphi Berlin 10.1
      Протестирован в MS Word 2010, 2016, Windows 7x64 и 10x64.
      Чтобы посмотреть пример, просто распакуйте zip-файл проекта и щелкайте по порядку кнопки на форме.

       
      Скачать Delphi Word Test
       
      WordTest.zip
    • От Genesis
      Здравствуйте, как можно перенести текст из документа в формате docx на телефон, включая картинки и форматирование? Спасибо.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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