{introducedin:4.5}
{description}
{excerpt}Writes a [Document|Document] to a file and saves it to a SharePoint List Item.{excerpt}
{signature:C#}
public static void Save(this WordApplication wordApplication, Document document, Microsoft.SharePoint.SPListItem listItem, string fileName)
{signature}{signature:vb.net}
Public Shared Sub Save(ByVal wordApplication As WordApplication, ByVal document As Document, ByVal docLib As Microsoft.SharePoint.SPListItem, ByVal fileName As String)
{signature}
{parameters}
{param:wordApplication}The current WordApplication object from which Save is being called{param}
{param:document}The {{Document}} to save.{param}
{param:listItem}The SharePoint List Item to which the file will be saved{param}
{param:fileName}Filename of the {{Document}}{param}
{exceptions}
{exception:System.Exception}Thrown if there is an error saving the file.{exception}
{remarks}The [WordApplication.Preserve|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.
{note}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{note}
{remarks}
{example}{code:csharp|title=C#}
//--- 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;
        {code}
{code:vb.net|title=vb.net}
'--- 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
        {code}

{example}