2008-12-08 13 views
4

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

EDIT: Сейчас я ищу извлечение уравнений из Word 2003, но если требуется преобразование его в 2007/Open XML, это нормально.

ответ

4

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

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

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

Это доступно в .NET тоже MSDN link.

+0

Это на самом деле то, с чем я пошел. Спасибо! – AndrewBurton 2008-12-09 01:05:55

0

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

4

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

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

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

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

    "C: \ Program Files \ Microsoft Office \ Office12 \ wordconv.exe" -oice -NMe input_file output_file

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