How to merge PDF files in memory using C# and .NET


Complete code

using System;
using System.IO;
using System.Collections.Generic;
using SautinSoft.PdfVision;

namespace Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            MergePdfInMemory();
        }
        public static void MergePdfInMemory()
        {
            PdfVision v = new PdfVision();
            // The whole merge process will be done in memory.
            // We're using files only to get input data and show the result.
            string[] inpFiles = new string[] {@"..\..\..\simple text.pdf", @"..\..\..\table.pdf"};
            string outFile = new FileInfo("Result.pdf").FullName;

            // Get bytes from input pdf documents.
            List<byte[]> mergingPdf = new List<byte[]>();
            foreach (string inpFile in inpFiles)
                mergingPdf.Add(File.ReadAllBytes(inpFile));

            // Merge PDF documents in memory into single document.
            byte[] singlePdf = v.MergePdf(mergingPdf);

            if (singlePdf!= null)
            {
                File.WriteAllBytes(outFile, singlePdf);
                // Open the resulting PDF document in a default PDF Viewer.
                System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(outFile) { UseShellExecute = true });
            }
        }
    }
}

Download

Imports System
Imports System.IO
Imports System.Collections.Generic
Imports SautinSoft.PdfVision

Namespace Sample
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			MergePdfInMemory()
		End Sub
		Public Shared Sub MergePdfInMemory()
			Dim v As New PdfVision()
			' The whole merge process will be done in memory.
			' We're using files only to get input data and show the result.
			Dim inpFiles() As String = {"..\..\..\simple text.pdf", "..\..\..\table.pdf"}
			Dim outFile As String = (New FileInfo("Result.pdf")).FullName

			' Get bytes from input pdf documents.
			Dim mergingPdf As New List(Of Byte())()
			For Each inpFile As String In inpFiles
				mergingPdf.Add(File.ReadAllBytes(inpFile))
			Next inpFile

			' Merge PDF documents in memory into single document.
			Dim singlePdf() As Byte = v.MergePdf(mergingPdf)

			If singlePdf IsNot Nothing Then
				File.WriteAllBytes(outFile, singlePdf)
				' Open the resulting PDF document in a default PDF Viewer.
				System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(outFile) With {.UseShellExecute = True})
			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:



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.