【发布时间】:2010-11-18 15:03:43
【问题描述】:
有没有办法使用 C# 或 Windows 批处理命令以编程方式删除 MS Word 文件或图像文件的元数据信息?
手动删除这些信息的方法是右键单击 Windows 资源管理器中的文件并选择“属性”>“详细信息”>“删除属性和个人信息”。
【问题讨论】:
标签: c# image ms-word metadata exif
有没有办法使用 C# 或 Windows 批处理命令以编程方式删除 MS Word 文件或图像文件的元数据信息?
手动删除这些信息的方法是右键单击 Windows 资源管理器中的文件并选择“属性”>“详细信息”>“删除属性和个人信息”。
【问题讨论】:
标签: c# image ms-word metadata exif
这并不容易,至少没有得到全部。
您可以查看 Litera(以前称为 Softwise)名为 Metadact 的元数据删除包。
市场上还有其他几个。
如果你想自己做,首先,你需要决定你认为什么是“元数据”。
使用 Word 对象模型(来自 C# 或 VB 的互操作)非常容易上手。
有些无法通过 Word 访问,因此您需要使用结构化存储 API 来访问它(如最后 10 位作者)。
如果您谈论的是 DOCX 文件,您可以使用 OpenXML SDK 来获取文件中的所有包。然后使用 XML 导航并编辑掉您不想要的位。
不过,如果采用这种方式,删除文档内容中的“元数据”会困难得多,因为您必须处理诸如 RUN 之类的内部 Word 结构,并更改跟踪内容。
【讨论】:
谢谢! 我想我找到了将元信息删除(或添加)到办公文档的方法。这里有一篇微软文章:The Dsofile.dll files lets you edit Office document properties when you do not have Office installed (KB 224351)
Dsofile.dll 示例文件是一个进程内 ActiveX 组件,用于 使用 Microsoft Visual Basic .NET 或 Microsoft .NET 的程序员 框架。您可以在自定义应用程序中使用它来阅读和 编辑与 Microsoft 关联的 OLE 文档属性 Office 文件,例如:
- Microsoft Excel 工作簿
- Microsoft PowerPoint 演示文稿
- Microsoft Word 文档 Microsoft
- Project 项目 Microsoft Visio 绘图
- 以 OLE 结构化存储格式保存的其他文件
Dsofile.dll 示例文件是 用 Microsoft Visual C++ 编写。 Dsofile.dll 示例文件 演示如何使用 OLE32 IPropertyStorage 接口访问 OLE 结构化存储文件的扩展属性。组件 将数据转换为自动化友好的数据类型,以便于使用 高级编程语言,例如 Visual Basic 6.0、Visual 基本的 .NET 和 C#。 Dsofile.dll 示例文件提供了完整的 源代码并包括用 Visual Basic 6.0 编写的示例客户端 和 Visual Basic .NET 2003 (7.1)。
【讨论】: