Word Object Model / OpenXML
Download
Report
Transcript Word Object Model / OpenXML
OpenXML: What is it?
XML-based file format which describes
documents, presentations, spreadsheets,
etc.
Replacement for binary file formats used
in previous versions of Office
Why use OpenXML?
Readable – plaintext representation
Smaller - compressed as a ZIP archive
Straightforward - images are respresented
within <pic> tags
All the benefits of regular XML!
Docx Structure (Containers)
Paragraph <w:p>
Most basic unit
One for each line break in the document
Container element
Run <w:r>
Region of content with a common set of
properties
All runs must be contained within a paragraph
Docx Structure (Root Elements)
Text <w:t>
Basic block of text
Normal formatting can be applied through
formatting tags (i.e. <w:b> for bold)
Must be contained within a run
Images <w:pic>
Pictures, Clipart, Smartart, Shapes, charts, etc.
Additional transformations can be applied to
the base image (rotation, reflection, etc.)
Docx Structure (example)
This is bold text.
<w:p>
<w:r>
<w:t>This is </w:t>
</w:r>
<w:r>
<w:rPr><w:b /></w:pr>
<w:t>bold </w:t>
</w:r>
<w:r>
<w:t>text.</w:t>
</w:r>
</w:p>
Dissecting a Word 2007 Document
Demo
Working with OpenXML
documents
Microsoft SDK for OpenXML
Provides strong bindings for accessing
document parts
Allows developer to create or change
documents without having Word open
Word Object Model
Coming up next…
Office Plugins
Visual Studio Tools for Office (VSTO)
Add-on for Visual Studio 2005
Develop Office add-ins just like any other
application
Use WYSIWYG editor to create GUI
Access the document through the Word object
model
Word Object Model
Word Object Model
InlineShapes
Collection of references to all images in the
document
Paragraphs
Directly correspond to OpenXML <w:p> tags
Ranges
Contiguous area in document
Can access actual text of document through
Text property
Creating a plugin demo
Visual Studio Tools for Office Demo
How we’re using it…
OpenXML SDK to parse the
document/presentation for accessibility
errors
VSTO SE to create an addin that checks
accessibility
Word Object Model to highlight regions of
text and manipulate the document
Conclusions
Any questions?