Using .NET 4, how do I add custom properties to a document?
I'm assuming it goes something like this:
WordApp // an instance of Microsoft.Office.Interop.Word.Application
.ActiveDocument
.CustomDocumentProperties
.Add...?
I cannot seem to find documentation for this that applies to .NET4/interops v14.
It took a lot of guessing (much more than 12 minutes worth, I'm embarrassed to say!) to figure this out:
WordApp // an instance of Microsoft.Office.Interop.Word.Application
.ActiveDocument
.CustomDocumentProperties
.Add(Name: "PropertyName",
LinkToContent: false,
Type: 4,
Value: "PropertyValue");
I couldn't find a decent enum for the types, so I dug the magic number "4" out of a forum post for string
and it works...
For casual browsers, this was tricky because CustomDocumentProperties
is dynamic, so I get no Intellisense. And for some reason, I cannot find docs on this.
The magic number 4 isn't that magic. Here is the enum you can use:
(part of microsoft.office.core)
public enum MsoDocProperties
{
msoPropertyTypeNumber = 1,
msoPropertyTypeBoolean = 2,
msoPropertyTypeDate = 3,
msoPropertyTypeString = 4,
msoPropertyTypeFloat = 5,
}
Use DSO File to Read/Write custom properties of Office documents. In fact DSO file works on any file format. DSO is Microsoft Developer Support OLE File Property Reader to read and write document properties of Microsoft Word, Microsoft Excel, Microsoft PowerPoint, and Microsoft Visio files, independent of the application that created the file. A sample application is also included with this download. Please try this :) DSO File Download.