我必须从很多(我的小型工作示例有数百个,总数可能会是数千个)中提取元数据,主要是Word文件。从旧Word文件中提取元数据(从2.0开始)
这些文件Word版本去从Word 2.0到Word 2007
我必须这样做,在.net 3.5(使用C#),这是一个当地的WinForms应用程序。
我想可以从最新的OLE自动化(DsoFile.dll)中提取元数据。我和他们中的一些人成功做到了。
问题是DsoFile不支持较早的格式。可能他们不使用OLE。
我做了大量的谷歌搜索,我发现获得我想要的数据的最好方法是使用反义词(http://www.winfield.demon.nl/)。 与antiword我可以调用其进程并收集其输出。它可以提取一些数据,但不是我所需要的。 例如:antiword只给我一个存储的日期,我需要其中的两个。
还有wvware,但我想这只是linux-only。
另一种选择是GNU libextractor,但我不能找到一种方法,在使用.NET上
办公室互操作将是一个绝望的最后一招。我还没有测试过这个选项,但是我猜测这并不是一个当想要处理大量文件并且性能不错的选项。
任何人都可以帮忙吗?如果你需要更多的数据,请问。
对不起,我不是母语的人。
+1感谢您的帮助。对于旧版本的版本,我最终在Linux上使用了antiword,并使用了一些小技巧,这样就可以将我需要的缺失日期提取到xml文件,并使用我正在构建的c#进行解析。对于我使用微软提供的(OLE)DsoFile.dll工具的较新格式。我提取的元数据是简单的东西:作者,一些日期等 旁注:我不能upvote你的答案,我没有足够的回购。 :( – osiris 2010-11-03 09:55:18
啊,是的,那个dsofile工具。这非常方便,但我不得不提取复合文档元素(像检测白色文本上的隐藏和白色,死头,命名样式等疯狂的东西)。不用担心upvote。 – DarinH 2010-11-03 14:38:10