MS Word 文書から方程式 (および場合によっては画像) をプログラムで抽出する方法はありますか? 私はあちこちグーグルで検索しましたが、歯を沈めて作業できるものをまだ見つけていません。可能であれば、VB.NET または C# でこれを実行できるようにしたいのですが、DLL をハックするのに十分な言語を選択できます。ありがとう!
編集:現在、Word 2003 から数式を抽出することを検討していますが、2007/Open XML に変換する必要がある場合は問題ありません。
ドキュメントの Word 形式は何ですか? それらが Open XML (ファイル拡張子 .docx) の場合、Microsoft から入手できるOpen XML SDKを使用して、画像と埋め込みコンテンツを抽出できます。
Open XML ファイルは、特別な構造を使用した zip アーカイブに他なりません。その zip アーカイブの一部にアクセスする方法の例が SDK にあります。実際には、zip 対応のライブラリを使用して、ドキュメント パッケージからコンテンツを抽出できます。
ドキュメントがまだ古いバイナリ形式を使用している場合、事態はもう少し複雑になります。最も簡単な方法は、ドキュメントを Open XML 形式に変換することだと思います。これを行うにはいくつかの方法があります。
Microsoft の互換性パックをインストールし、次のコマンド ラインを使用して変換します。
"C:\Program Files\Microsoft Office\Office12\wordconv.exe" -oice -nme input\_file output_file
ここで、input_file と output_file は絶対パス名である必要があります。
これが役立つかどうかはわかりませんが、Word 2000/2003 のオブジェクト モデルにはオブジェクトInlineShapes
の一部としてコレクションがあり、Document
埋め込み画像や数式などの同様のオブジェクトを表す可能性があります。
最初の項目をクリップボードにコピーするための VBA コード (抽出に役立つ場合があります):
ThisDocument.InlineShapes.Items(1).Select
Selection.Copy
.NET でもアクセスできます。MSDN リンク。
Word-to-latexコンバーターを調べてみてください。これには .Net フレームワークが必要であり、ソースはまだ公開されていませんが、作成者はこれについて質問を募集しています。