Как программно вставить комментарии в документ Microsoft Word? - PullRequest
10 голосов
/ 20 февраля 2009

В поисках способа программно вставлять комментарии (используя функцию комментариев в Word) в определенное место в документе MS Word. Я бы предпочел подход, который применим в последних версиях стандартных форматов MS Word и может быть реализован в среде, отличной от Windows (в идеале, с использованием Python и / или Common Lisp) Я смотрел на OpenXML SDK, но не могу найти там решения.

Ответы [ 2 ]

7 голосов
/ 20 февраля 2009

Вот что я сделал:

  1. Создать простой документ со словом (т. Е. Очень маленький)
  2. Добавить комментарий в Word
  3. Сохранить как документ.
  4. Используйте zip-модуль python для доступа к архиву (файлы docx являются ZIP-архивами).
  5. Создать дамп содержимого записи "word / document.xml" в архиве. Это XML самого документа.

Это должно дать вам представление о том, что вам нужно делать. После этого вы можете использовать одну из библиотек XML в Python для анализа документа, его изменения и добавления обратно в новый ZIP-архив с расширением «.docx». Просто скопируйте все остальные записи из оригинального ZIP-файла, и вы получите новый действительный документ Word.

Существует также библиотека, которая может помочь: openxmllib

2 голосов
/ 20 февраля 2009

Если это сторона сервера (неинтерактивная), то использование самого приложения Word не поддерживается (но я вижу, что это неприменимо). Поэтому либо следуйте по этому пути, либо используйте OpenXML SDK , чтобы узнать разметку, необходимую для создания комментария. С этим знанием все дело в манипулировании данными.

Формат .docx представляет собой ZIP-файл XML-файлов с определенной структурой, поэтому, как правило, когда вы попадаете в ZIP-файл и получаете правильный XML-файл, возникает вопрос изменения XML DOM.

Лучший способ - взять документ, скопировать его, добавить к нему комментарий (используя Word) и сравнить. Разница покажет вам, какие элементы / структуры вам нужно искать в SDK (или стандарте ISO / Ecma).

...