Links - January 25, 2010

Authoring in a Content Publishing System using Word

This blog is inactive.
New blog:

Blog TOC
I recently posted on Gray Knowlton's blog with my thoughts on how I would design the authoring experience in a content publishing system.  The gist of my approach is that you use styles to mark content and control the document transformation content.  One problem is that sometimes your business logic requires that several paragraphs be grouped together, and processed as a whole.  This can lead to idiosyncratic experiences for the author.  A good solution is to use content controls to delineate a range of paragraphs.

Associating Arbitrary Data with Content Controls

Sometimes developers want to associate some user-editable data with content controls, but in and of themselves, there is no capability for either storing auxiliary information with content controls, nor for editing that information in Word.  A reasonable solution is to build a managed add-in that creates a custom task pane.  The word-processor user edits that data in a custom task pane.  The data is stored in a custom XML part, and is associated with each content control using the content control's unique id.  I co-wrote with Anil Kumar a guest post for Gray's blog that details how to do this.

PHP Library for Dynamic Generation of Microsoft Word Documents

Eduardo Ramos wrote an article for that introduces PHPDOCX, a library that makes it easy to generate DOCX files using PHP.  He was working on a project where, for technical reasons, they needed to develop on a LAMP (Linux Apache MySQL PHP) platform.  PHPDOCX is is offered for free under the LGPL license.  There is also a PRO version eligible for support

SpreadsheetML Made Easy Using C#

Tim Coulter wrote an article for that introduces ExtremeML, a new open source library that adds functionality to the Open XML SDK.  In the article, he walks through a typical use-case for ExtremeML: the programmatic creation of a fully styled and formatted Excel workbook, populated with live data from a database and enhanced by the addition of a pivot table and a chart.