Извлечение уравнений и изображений из Word - PullRequest
4 голосов
/ 08 декабря 2008

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

РЕДАКТИРОВАТЬ: Прямо сейчас я смотрю на извлечение уравнений из Word 2003, но если требуется преобразование его в 2007 / Open XML, это нормально.

Ответы [ 3 ]

6 голосов
/ 08 декабря 2008

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

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

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

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

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

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

5 голосов
/ 08 декабря 2008

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

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

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

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

0 голосов
/ 08 декабря 2008

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...