Migration Notes

Why To Migrate?

Here are the key reasons to use the new updated API provided by GroupDocs.Merger for .NET since version 19.9:

  • Merger class introduced as a single entry point to manage the document processing of any supported file format (instead of DocumentHander class from previous versions). 
  • Product architecture was redesigned from scratch in order to decreased memory usage (from 10% to 400% approx. depending on document type).
  • Document processing API simplified and improved so it’s easy to instantiate proper options class and control over document structure manipulation processes.

How To Migrate?

Here is a brief comparison of how to join documents using old and new API.

Old coding style

string sourceFile1 = CommonUtilities.fileOne + fileOne;
string sourceFile2 = CommonUtilities.fileTwo + fileTwo;


// Preparing.
string password = "SomePasswordString";
Stream openFile1 = new FileStream(sourceFile1, FileMode.Open);
Stream openFile2 = new FileStream(sourceFile2, FileMode.Open);

List<JoinItem> documentStreams = new List<JoinItem>();

JoinItem item1 = new JoinItem(openFile1, FileFormat.Docx, password);
documentStreams.Add(item1);
JoinItem item2 = new JoinItem(openFile2, FileFormat.Docx, password);
documentStreams.Add(item2);


// Main method.
DocumentResult result = new DocumentHandler().Join(documentStreams);

Stream documentStream = result.Stream;
var fileStream = File.Create(CommonUtilities.outputPath + "OutPut." + FileFormat.Docx);
documentStream.CopyTo(fileStream);
documentStream.Close();

New coding style

using (Merger merger = new Merger(@"c:\sample1.docx"))
{
    merger.Join(@"c:\sample2.docx");
    merger.Save(@"c:\output\result.docx");
}

For more code examples and specific use cases please refer to our Developer Guide documentation or GitHub samples and showcases.