Friday, March 12, 2010

Adding Images in Word Document using C#.NET

Hey,
I came across a requirement where i need to add Images in the Microsoft word document using C# code in Windows application.


I searched and wrote the code as follows but before that :

Step 1) do add reference to Microsoft Word Object Library.

Step 2) Add using Microsoft.Office.Interop.Word;
using System.IO; namespaces on top.


Code in Form1.cs:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.Word;
using System.IO;

namespace Sample
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
object missing = System.Reflection.Missing.Value;
object Visible=true;
object start1 = 0;
object end1 = 0;

ApplicationClass WordApp = new ApplicationClass();
Document adoc = WordApp.Documents.Add(ref missing, ref missing, ref missing, ref missing);
Range rng = adoc.Range(ref start1, ref missing);

try
{

foreach (ListViewItem Li in listView1.Items)
{

FileInfo Fi = new FileInfo(Li.Text);

rng.InlineShapes.AddPicture(Fi.ToString(), ref missing, ref missing, ref missing);

}

rng.Font.Name = "Georgia";
rng.InsertAfter("Hello World!");
object filename = @"D:\"+textBox1.Text+".docx"; //Saves in D directory


adoc.SaveAs(ref filename, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing);


}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void butBrowse_Click(object sender, EventArgs e)
{
openFileDialog1.ShowDialog();
string [] FileNames = openFileDialog1.FileNames;
foreach (string nameOfFile in FileNames)
{
listView1.Items.Add(nameOfFile);
}

}
}
}


Thats it..Now check your directory(here it is D directory)


Below is the Screen Shot:













Happy Coding..!
Regards,
Nitin Sharma