How to load a DOC (Word 97 - 2003) document in C# and .NET

  1. Add SautinSoft.Document from Nuget.
  2. Load a DOC document from file or stream.

  1. Load from a file:
    
    DocumentCore dc = DocumentCore.Load(@"..\..\example.doc");
    
    The dc represents the document "example.doc" loaded in memory. The file format is detected automatically from the file extension: ".doc" .

    After loading you'll get the document presented as the Tree Of Objects, where the root node is DocumentCore class.

    To guarantee that a loadable content is really DOC and set some loading options, use DocLoadOptions as 2nd parameter.

    
    DocumentCore dc = DocumentCore.Load(@"..\..\example.doc", new DocLoadOptions());
    
  2. Load using a MemoryStream:
    
                // Assume that we already have a DOC (Word 97-2003) document as bytes array.
                byte[] fileBytes = File.ReadAllBytes(@"..\..\example.doc");
    
                DocumentCore dc = null;
    
                // Create a MemoryStream
                using (MemoryStream ms = new MemoryStream(fileBytes))
                {
                    // Load a document from the MemoryStream.
                    // Specifying DocLoadOptions we explicitly set that a loadable document is DOC.
                    dc = DocumentCore.Load(ms, new DocLoadOptions());
                }
                if (dc != null)
                    Console.WriteLine("Loaded successfully!");
    
 

Complete code

using System;
using System.IO;
using SautinSoft.Document;

namespace Example
{
    class Program
    {      
        static void Main(string[] args)
        {
            // Get your free 30-day key here:   
            // https://sautinsoft.com/start-for-free/

            LoadDocFromFile();
            //LoadDocFromStream();
        }

        /// <summary>
        /// Loads a DOC (Word 97-2003) document into DocumentCore (dc) from a file.
        /// </summary>
        /// <remarks>
        /// Details: https://www.sautinsoft.com/products/document/help/net/developer-guide/load-doc-word-97-2003-document-net-csharp-vb.php
        /// </remarks>
        static void LoadDocFromFile()
        {
            string filePath = @"..\..\..\example.doc";
            // The file format is detected automatically from the file extension: ".doc".
            // But as shown in the example below, we can specify DocLoadOptions as 2nd parameter
            // to explicitly set that a loadable document has DOC format.
            DocumentCore dc = DocumentCore.Load(filePath);

            if (dc != null)
                Console.WriteLine("Loaded successfully!");

			Console.ReadKey();
        }

        /// <summary>
        /// Loads a DOC (Word 97-2003) document into DocumentCore (dc) from a MemoryStream.
        /// </summary>
        /// <remarks>
        /// Details: https://www.sautinsoft.com/products/document/help/net/developer-guide/load-doc-word-97-2003-document-net-csharp-vb.php
        /// </remarks>
        static void LoadDocFromStream()
        {
            // Assume that we already have a DOC (Word 97-2003) document as bytes array.
            byte[] fileBytes = File.ReadAllBytes(@"..\..\..\example.doc");

            DocumentCore dc = null;

            // Create a MemoryStream
            using (MemoryStream ms = new MemoryStream(fileBytes))
            {
                // Load a document from the MemoryStream.
                // Specifying DocLoadOptions we explicitly set that a loadable document is DOC.
                dc = DocumentCore.Load(ms, new DocLoadOptions());
            }
            if (dc != null)
                Console.WriteLine("Loaded successfully!");
			
			Console.ReadKey();			
        }
    }
}

Download

Imports System
Imports System.IO
Imports SautinSoft.Document

Module Sample
    Sub Main()
        LoadDocFromFile()
        'LoadDocFromStream();
    End Sub
        ''' Get your free 30-day key here:   
        ''' https://sautinsoft.com/start-for-free/
	''' <summary>
	''' Loads a DOC (Word 97-2003) document into DocumentCore (dc) from a file.
	''' </summary>
	''' <remarks>
	''' Details: https://www.sautinsoft.com/products/document/help/net/developer-guide/load-doc-word-97-2003-document-net-csharp-vb.php
	''' </remarks>
	Sub LoadDocFromFile()
		Dim filePath As String = "..\..\..\example.doc"
		' The file format is detected automatically from the file extension: ".doc".
		' But as shown in the example below, we can specify DocLoadOptions as 2nd parameter
		' to explicitly set that a loadable document has DOC format.
		Dim dc As DocumentCore = DocumentCore.Load(filePath)

		If dc IsNot Nothing Then
			Console.WriteLine("Loaded successfully!")
		End If

		Console.ReadKey()
	End Sub

	''' <summary>
	''' Loads a DOC (Word 97-2003) document into DocumentCore (dc) from a MemoryStream.
	''' </summary>
	''' <remarks>
	''' Details: https://www.sautinsoft.com/products/document/help/net/developer-guide/load-doc-word-97-2003-document-net-csharp-vb.php
	''' </remarks>
	Sub LoadDocFromStream()
		' Assume that we already have a DOC (Word 97-2003) document as bytes array.
		Dim fileBytes() As Byte = File.ReadAllBytes("..\..\..\example.doc")

		Dim dc As DocumentCore = Nothing

		' Create a MemoryStream
		Using ms As New MemoryStream(fileBytes)
			' Load a document from the MemoryStream.
			' Specifying DocLoadOptions we explicitly set that a loadable document is DOC.
			dc = DocumentCore.Load(ms, New DocLoadOptions())
		End Using
		If dc IsNot Nothing Then
			Console.WriteLine("Loaded successfully!")
		End If

		Console.ReadKey()
	End Sub
End Module

Download


If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below:



Questions and suggestions from you are always welcome!

We are developing .Net components since 2002. We know PDF, DOCX, RTF, HTML, XLSX and Images formats. If you need any assistance with creating, modifying or converting documents in various formats, we can help you. We will write any code example for you absolutely free.