How to merge multiple RTF files in C# and .NET


Complete code

using System;
using System.IO;
using static SautinSoft.HtmlToRtf;

namespace Sample
{
    class Test
    {

        static void Main(string[] args)
        {
			// Get your free 100-day key here:   
            // https://sautinsoft.com/start-for-free/
	
            // Merge multiple RTF files
            // If you need more information about "HTML to RTF .Net" email us at:
            // support@sautinsoft.com		
            MergeFiles();
        }

        public static void MergeFiles()
        {
            SautinSoft.HtmlToRtf h = new SautinSoft.HtmlToRtf();

            DirectoryInfo htmlDir = new DirectoryInfo(@"..\..\..\");

            // Array with several RTF files.            
            string[] rtfFiles = new string[] { "footer.rtf", "footer.rtf", "footer.rtf" };
            string singleRtf = String.Empty;

            // Let's divide RTF documents using page break.
            h.MergeSetup.PageBreakBetweenDocuments = true;

            foreach (string rtfFile in rtfFiles)
            {
                string rtfFilePath = Path.Combine(htmlDir.FullName, rtfFile);

                // Copy 1st RTF to 'singleRtf'
                if (String.IsNullOrEmpty(singleRtf))
                    singleRtf = File.ReadAllText(rtfFilePath);

                // Merge 2nd, 3rd ....
                else
                    singleRtf = h.MergeRtfString(singleRtf, File.ReadAllText(rtfFilePath));
            }

            // Save 'singleRtf' to a file only for demonstration purposes.
            string singleRtfPath = "Single.rtf";
            File.WriteAllText(singleRtfPath, singleRtf);
            System.Diagnostics.Process.Start(new System.Diagnostics.ProcessStartInfo(singleRtfPath) { UseShellExecute = true });
        }
    }
}

Download

Imports System
Imports System.IO
Imports SautinSoft.HtmlToRtf

Namespace Sample
	Friend Class Test

		Shared Sub Main(ByVal args() As String)
			' Get your free 100-day key here:   
            ' https://sautinsoft.com/start-for-free/
	
			' Merge multiple RTF files
			' If you need more information about "HTML to RTF .Net" email us at:
			' support@sautinsoft.com		
			MergeFiles()
		End Sub

		Public Shared Sub MergeFiles()
			Dim h As New SautinSoft.HtmlToRtf()

			Dim htmlDir As New DirectoryInfo("..\..\..\")

			' Array with several RTF files.            
			Dim rtfFiles() As String = {"footer.rtf", "footer.rtf", "footer.rtf"}
			Dim singleRtf As String = String.Empty

			' Let's divide RTF documents using page break.
			h.MergeSetup.PageBreakBetweenDocuments = True

			For Each rtfFile As String In rtfFiles
				Dim rtfFilePath As String = Path.Combine(htmlDir.FullName, rtfFile)

				' Copy 1st RTF to 'singleRtf'
				If String.IsNullOrEmpty(singleRtf) Then
					singleRtf = File.ReadAllText(rtfFilePath)

					' Merge 2nd, 3rd ....
				Else
					singleRtf = h.MergeRtfString(singleRtf, File.ReadAllText(rtfFilePath))
				End If
			Next rtfFile

			' Save 'singleRtf' to a file only for demonstration purposes.
			Dim singleRtfPath As String = "Single.rtf"
			File.WriteAllText(singleRtfPath, singleRtf)
			System.Diagnostics.Process.Start(New System.Diagnostics.ProcessStartInfo(singleRtfPath) With {.UseShellExecute = True})
		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.