Вопрос

Существует ли программный способ извлечения уравнений (и, возможно, изображений) из документа MS Word?Я погуглил повсюду, но пока не нашел ничего, во что я мог бы вонзить зубы и работать с этим.Если возможно, я хотел бы иметь возможность сделать это с помощью VB.NET или C #, но я могу подобрать достаточно любого языка, чтобы взломать DLL.Спасибо!

Редактировать: Прямо сейчас я рассматриваю возможность извлечения уравнений из Word 2003, но если требуется преобразовать его в 2007 / Open XML, это нормально.

Это было полезно?

Решение

Я не знаю, поможет ли что-нибудь из этого, но объектная модель в Word 2000/2003 имеет InlineShapes коллекция как часть Document объект, который представляет встроенные изображения и, возможно, подобные объекты, такие как уравнения.

Некоторый код VBA для копирования первого элемента в буфер обмена, который может помочь вам извлечь их:

ThisDocument.InlineShapes.Items(1).Select
Selection.Copy

Он также доступен в .NET, Ссылка на MSDN.

Другие советы

В каком формате Word находятся ваши документы?Если они находятся в формате Open XML (расширение файла .docx), вы могли бы использовать Открытый XML SDK доступно в Корпорации Майкрософт для извлечения изображений и встроенного содержимого.

Открытый XML-файл - это не что иное, как zip-архив, использующий специальную структуру.В SDK вы найдете примеры доступа к частям этого zip-архива.На самом деле вы могли бы использовать любую библиотеку с поддержкой zip для извлечения содержимого из пакета документов.

Если документы все еще используют старый двоичный формат, все немного сложнее.Я думаю, что самым простым способом было бы преобразовать документы в формат Open XML.Есть несколько способов сделать это:

  • Получите бесплатно и откройте b2xтранслятор из SourceForge, который предлагает вам библиотеки DLL на C # для преобразования файлов.
  • Установите программное обеспечение Microsoft Пакет совместимости и используйте следующую командную строку для преобразования:

    "C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme input\_file output_file

где input_file и output_file должны быть полными именами путей.

Попробуйте взглянуть на Слово-в-latex преобразователь.Для этого требуется .Net framework, и хотя исходный код еще не открыт, автор вызывает вопросы по этому поводу.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top