Чтение и изменение документа Microsoft Word с использованием сценария TCL

Я работаю над проектом автоматизации, который я полностью закодировал в TCL. Часть проекта требует прочитать документ Microsoft Word и изменить строку в этом документе Word с помощью сценария TCL. Я пробовал с пакетами tcom, но столкнулся с проблемой при внесении изменений в этот документ, так как текстовый документ повреждается. Так что, ребята, если кто-нибудь может мне помочь, я буду очень благодарен.

Примечание. Сценарий также может быть в оболочке. В этом случае я вызову сценарий оболочки из моего сценария tcl.

Спасибо


person Imdad Ahmed    schedule 08.05.2013    source источник
comment
Я запускаю сценарий TCL с сервера UNIX.   -  person Imdad Ahmed    schedule 08.05.2013


Ответы (2)


tcom — это расширение только для Windows, позволяющее Tcl взаимодействовать с COM-объектами. Чтобы автоматизировать Microsoft Word с помощью tcom, вы фактически запускаете исполняемый файл Word, поэтому это можно сделать только в Windows.

Чтобы сделать это в Unix, вам нужно найти какое-нибудь приложение Unix, которое может изменять документы Word для вас. Tcl не будет иметь каких-либо расширений Unix, которые могут это сделать, и формат файла, с которым вам придется работать, будет зависеть от используемой версии Word. Если файл представляет собой файл docx, то на самом деле это файл формата zip с документами XML. Вы можете использовать подкомпонент zipvfs расширения tclvfs для монтирования zip-документа, а затем вы можете использовать tdom (расширение объектной модели XML-документа tcl) для проверки и изменения XML-потока на месте. Для предыдущих версий Word, в которых использовались структурированные документы хранения, вы сталкиваетесь с трудностями при обработке формата в системах, отличных от Windows.

person patthoyts    schedule 08.05.2013

Работа с документами MS Office в Unix немного утомительна, и для этого нет пакетов Tcl (насколько я знаю). Лучше всего использовать что-то вроде Apache POI для работы по интеграции и управлять этой библиотекой Java либо как внешнего процесса (т. е. написать небольшое интегрируемое Java-приложение) или запустив Tcl внутри интерпретатора JTcl внутри Java-процесс.

person Donal Fellows    schedule 08.05.2013