Writes a Document to a file and saves it to a SharePoint List Item.

public static void Save(this WordApplication wordApplication, Document document, Microsoft.SharePoint.SPListItem listItem, string fileName)
Public Shared Sub Save(ByVal wordApplication As WordApplication, ByVal document As Document, ByVal docLib As Microsoft.SharePoint.SPListItem, ByVal fileName As String)

The current WordApplication object from which Save is being called

The Document to save.

The SharePoint List Item to which the file will be saved

Filename of the Document

Thrown if there is an error saving the file.

The WordApplication.Preserve property is used to specify the way WordWriter will save the document. When the preserve property is set to true, WordWriter attempts to preserve all formatting and features that it doesn't directly support. This includes Fields, Footnotes, Hyperlinks, Comments, and Anchored Images. When the preserve property is false, only those features directly supported by WordWriter will be preserved. This includes all Tables, Lists, Headers and Footers.

This is an extension method for the WordApplication object to be used for saving documents to a SharePoint List Item from within SharePoint. To use this method, you must add a reference to SoftArtisans.OfficeWriter.WordWriter.SharePointIntegration.dll

//--- Retrieve current AllowUnsafeUpdates value
bool currentAllowUnsafeUpdates = list.ParentWeb.AllowUnsafeUpdates;

//--- You must allow unsafe updates in order for the file to be saved in the
//--- List from a web application
list.ParentWeb.AllowUnsafeUpdates = true;
wa.Save(doc, listItem, "populated.doc");

//--- Update the list
listItem.Update();

//--- Return the AllowUnsafeUpdates value to its original state
list.ParentWeb.AllowUnsafeUpdates = currentAllowUnsafeUpdates;
        
'--- Retrieve current AllowUnsafeUpdates value
Dim currentAllowUnsafeUpdates As Boolean = list.ParentWeb.AllowUnsafeUpdates

'--- You must allow unsafe updates in order for the file to be saved in the
'--- List from a web application
list.ParentWeb.AllowUnsafeUpdates = True
wa.Save(doc, listItem, "populated.doc")

'--- Update the list
listItem.Update()

'--- Return the AllowUnsafeUpdates value to its original state
list.ParentWeb.AllowUnsafeUpdates = currentAllowUnsafeUpdates