Friday, February 22, 2013

Merge multiple documents in SharePoint 2010 Programmatically

So here is the scenario:

1.  SharePoint document library has multiple documents with the same context let’s say month’s announcements.

2.  Now a single newsletter should go to all users with all announcements in a single announcement monthly letter.

3.  So it’s nothing but merging multiple documents into a single document.


Here “filepath1” is the location of the first document and “filepath2” is for second document. So it could be like http:/// Lib>/documentname.docx

Hope you are clear here as this code only merge 2 documents…but with a loop you can have multiple documents.

private void readDocument(string filePath1, string filePath2)

            string targetfile = string.Empty;
            object file1 = filePath1;
            object file2 = filePath2;
            object file3 = targetfile;
            object objMissing = System.Reflection.Missing.Value;
            object objTrue = System.Reflection.Missing.Value;
            object start = 0;
            object end = 0;


ApplicationClass WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();

Document finalDocument = WordApp.Documents.Add(ref objMissing, ref objMissing, ref objMissing, ref objMissing);

//Range field will ensure they won’t overwrite and second document start where first document ends.

Range rng = finalDocument.Range(ref start, ref objMissing);

rng.InsertFile(filePath1, ref objMissing, ref objMissing, ref objMissing, ref objMissing);

start = (WordApp.ActiveDocument.Content.End)-1; 

Range rng1 = finalDocument.Range(ref start, ref objMissing); 

rng1.InsertFile(filePath2, ref objMissing, ref objMissing, ref objMissing, ref objMissing); 

start = (WordApp.ActiveDocument.Content.End) - 1;