Разработчик представил метод конвертации файлов формата DOCM в DOCX на языке Python без использования Microsoft Word или COM-объектов. Решение работает на уровне файловой структуры, обрабатывая документы как ZIP-архивы с XML-содержимым.

Алгоритм удаляет файлы, связанные с макросами, такие как vbaData.xml и vbaProject.bin, а также корректирует содержимое [Content_Types].xml и document.xml.rels. Скрипт обновляет XML-элементы для обеспечения совместимости с библиотекой python-docx.

Работоспособность метода проверена на файлах, созданных в Microsoft Office версий 2007, 2010 и 2016, а также в LibreOffice 7.5.3.2 и 26.8.0.3. Полученные файлы корректно считываются библиотекой python-docx версии 1.1.2.

Автор отмечает, что LibreOffice создает файлы с расширением DOCM, но не сохраняет в них VBA-макросы. Решение учитывает различия в структуре XML-архивов, которые зависят от версии офисного пакета, в котором был создан исходный документ.