Convert DOC (Word 97-2003) to PDF format in memory using C# and .NET


In today's world, document automation and rapid information exchange are paramount. One of the most popular scenarios is converting documents from DOC to PDF—a more universal and widely used format for document distribution and storage. In this article, we'll look at how to convert DOC to PDF in C# and .NET entirely in-memory, avoiding the need to save intermediate files, using the powerful component PDF Metamorphosis .NET from SautinSoft API.

Conversion from DOC to PDF is often used in the following scenarios:

  • Automatic preparation of documents for publication or archiving.
  • Creation of secure PDF files for distribution without editing.
  • Integrating document management systems into business applications—automatic generation of PDF reports, contracts, and presentations.
  • Ensuring compatibility and document integrity during network transmission, where PDF is more resistant to formal changes.

Using in-memory conversion is a modern practice that is gaining popularity due to its efficiency and security.

In large automated document processing systems, in-memory conversion helps:
  • Speed up processing of large volumes of documents.
  • Eliminate the risk of data loss or file corruption.
  • Ensure scalability and integration with web services and cloud solutions.

The code example below demonstrates the basic principles: loading a document into a stream, converting it to another stream, and then using or saving it.

Advice. For new projects, be sure to consider in-memory processing for faster and more secure document processing. This is especially relevant in cloud-based and scalable systems.

Input file:

convert doc file to pdf in memory input

Output result:

convert doc file to pdf in memory output

Complete code

using System;
using System.IO;
using System.Collections;

namespace Sample
{
	class Test
	{
		
		static void Main(string[] args)
		{
			// Before starting, we recommend to get a free key:
            // https://sautinsoft.com/start-for-free/
            
            // Apply the key here:
			// SautinSoft.PdfMetamorphosis.SetLicense("...");

			SautinSoft.PdfMetamorphosis p = new SautinSoft.PdfMetamorphosis();

			if (p != null)
			{
                string docPath = @"..\..\..\example.doc";
                string pdfPath = Path.ChangeExtension(docPath, ".pdf");
                byte[] doc = File.ReadAllBytes(docPath);
                			
				// 2. Convert DOC to PDF in memory                
                byte[] pdf = p.DocToPdfConvertByte(doc);

				if (pdf != null)
				{
                    // 3. Save the PDF document to a file for a viewing purpose.
                    File.WriteAllBytes(pdfPath, pdf);
					System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(pdfPath) { UseShellExecute = true });
				}
				else
				{
					System.Console.WriteLine("Conversion failed!");
                    Console.ReadLine();
				}
			}
		}
	}
}

Download

Imports System
Imports System.IO

Namespace Sample
    Friend Class Test

        Shared Sub Main(ByVal args() As String)
			' Before starting, we recommend to get a free key:
            ' https://sautinsoft.com/start-for-free/
            
            ' Apply the key here:
			' SautinSoft.PdfMetamorphosis.SetLicense("...");


            Dim p As New SautinSoft.PdfMetamorphosis()

            If p IsNot Nothing Then
                Dim docPath As String = "..\..\..\example.doc"
                Dim pdfPath As String = Path.ChangeExtension(docPath, ".pdf")
                Dim doc() As Byte = File.ReadAllBytes(docPath)

                ' 2. Convert DOC to PDF in memory                
                Dim pdf() As Byte = p.DocToPdfConvertByte(doc)

                If pdf IsNot Nothing Then
                    ' 3. Save the PDF document to a file for a viewing purpose.
                    File.WriteAllBytes(pdfPath, pdf)
					System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(pdfPath) With {.UseShellExecute = True})
                Else
                    System.Console.WriteLine("Conversion failed!")
                    Console.ReadLine()
                End If
            End If
        End Sub
    End Class
End Namespace

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:


Captcha

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.