Earlier, we have discussed about reading the Summary and Custom Properties of Word 2003 using DSO DLL.
Here are the articles references
As already mentioned in the above articles, DSO dll is a 32 bit and also it has OLE property reader class, which can read only the office 2003 documents.
The same DSO file cannot be used for reading the properties of 2007 & 2010. This is because, word 2003 stores the properties in OLE type and hence DSO has capabilities to read the properties. But word 2007 and 2010 stores in XML formats.
Want to know how the office 2007 & 2010 stores the properties in XML formats?
Change the extension of word 2007 or 2010 documents from .docx to .zip. Now extract the contents.
You will see many xml files inside that folder.
Now open the folder -> docProps folder -> 3 files will be there
1. App.xml – it stores the document’s summary properties
1. App.xml – it stores the document’s summary properties
2. Core.xml – it stores the document’s summary properties
3. Custom.xml – it stores the document’s custom properties
The below snap shot shows the custom.xml file of a word 2007 document
It is possible to read the custom properties of word document using Office DLLs (which is deployed when you install a MS office in a machine).
But how to read the properties without using Office DLLs?
Hence, we will go for an open source dll provided by Microsoft called Open Office XML SDK 2.0.
The same can be downloaded from the below link
It has the capabilities to read the xml properties from the MS office documents.
Code snippet for reading custom the properties of word 2007 & 2010
public Dictionary<string, string> WDGetCustomProperties(string filename) { using (var package = WordprocessingDocument.Open(filename, false)) { var properties = new Dictionary<string, string>(); var customProps = package.CustomFilePropertiesPart; foreach (var property in package.CustomFilePropertiesPart.Properties.Elements<CustomDocumentProperty>()) { if (property.Name == "Name") Name = Convert.ToString(property.InnerText); if (property.Name == "Expertise") ExpertiseIn = Convert.ToString(property.InnerText); if (property.Name == "Place") Place = Convert.ToString(property.InnerText); } return properties; } }
Note: Don’t forget to declare the 3 variables used for storing the values in theabove code.
Hence, this article shows you how to read the custom properties of the word
2007 & 2010 documents.
To know how to create the custom properties in the Word 2007 & 2010 read