title: How to produce documents (docx or pdf) from SQL Server?
body: <p>I know this is a little subjective, but I'm looking into the following situation:</p>
  
  <p>I need to produce a number of documents automatically from data in a SQL Server database. There will be an MVC3 app sat on the database to allow data entry etc. and (probably) a "Go" button to produce the documents.</p>
  
  <p>There needs to be some business logic about how these documents are created, named and stored (e.g. "Parent" documents get one name and go in one folder, "Child" documents get a computed name and go in a sub-folder.</p>
  
  <p>The documents can either be PDF or Doc(x) (or even both), as long as the output can be in EN-US and AR-QA (RTL text)</p>
  
  <p>I know there are a number of options from SSRS, Crystal Reports, VSTO, "manual" PDF in code, word mail merge, etc...  and we already have an HTML to PDF tool if thats any use?</p>
  
  <p>Does anyone have any real world advice on how to go about this and what the "best" (most pragmatic) approach would be?  The less "extras" I need to install and configure on a server the better - the faster the development the better (as always!!)</p>
  
  <hr>
  
  <p>Findings so far:</p>
  
  <p><strong>Word Mail Merge (or VSTO)</strong>
  Simply doesn't offer the simplicity, control and flexibility I require - shame really.  Would be nice to define a dotx and be able to pass in the data to it on an individual basis to generate the docx.  Only way I could acheive this (and I may be wrong here) was to loop through controls/bookmarks by name and replace the values...messy.</p>
  
  <p><strong>OpenXML</strong>
  Creating documents based on dotx templates, even using OpenXML is not as simple as (IMHO) it should be.  You have to replace each Content control by name, so maintenance isn't the simplest task.</p>
  
  <p><strong>SSRS</strong>
  On the face of it this is a good solution (although it needs SQL Enterprise), however it gets more complicated if you want to dynamically produce the folders and documents.  Data driven subscription gets very close to what I want though.</p>
  
  <p><strong>Winnovative HTML to PDF Convertor*</strong>
  This is the tool we already have (albeit a .Net 2.0 version).  This allows me to generate the HTML pages and convert those to PDF.  A good option for me since I can run this on an MVC3 website adn pass the parameters into the controllers to generate the PDF's.  This gives me much finer-grained control over the folder and naming structures - the issue with this method is simply generating the pages in the correct way. A bonus is that it automatically gives me a "preview"...basiclly just the HTML page!</p>