Click here to Skip to main content
15,891,136 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
C#
 Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
  object oMissing = System.Reflection.Missing.Value;
        //DirectoryInfo dirInfo = new DirectoryInfo(@"C:\Users\santhosh\Desktop\KJL HR 21-0814\Web");
        DirectoryInfo dirInfo = new DirectoryInfo(@"D:\Doc");
        FileInfo[] wordFiles = dirInfo.GetFiles("*.docx");
        word.Visible = false;
        word.ScreenUpdating = false;
        foreach (FileInfo wordFile in wordFiles)
        {
            Object filename = (Object)wordFile.FullName;
            if (wordFile.ToString() == "Offer letter.docx")
            {
Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
Document doc = word.Documents.Open(ref filename, ref oMissing,
                    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                    ref oMissing, ref oMissing, ref oMissing, ref oMissing);
                doc.Activate();
 object outputFileName = wordFile.FullName.Replace(".docx", ".pdf");
                object fileFormat = WdSaveFormat.wdFormatPDF;

                doc.SaveAs(ref outputFileName,
                    ref fileFormat, ref oMissing, ref oMissing,
                    ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                    ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                    ref oMissing, ref oMissing, ref oMissing, ref oMissing);

                object saveChanges = WdSaveOptions.wdDoNotSaveChanges;
                ((_Document)doc).Close(ref saveChanges, ref oMissing, ref oMissing);
                doc = null;
            }
        }
        ((_Application)word).Quit(ref oMissing, ref oMissing, ref oMissing);
        word = null;





It is giving Error at line
"doc.Activate()".
Error Stack Trace is:
[NullReferenceException: Object reference not set to an instance of an object.]
HRM_Letters_OfferLetter.btnsave_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\02-02-2015 HRM\Web\HRM Letters\OfferLetter.aspx.cs:210
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +114
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +139
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +28
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2980

By executing this ,am getting "System.NullReferenceException: Object reference not set to an instance of an object." error in c#.net.pleae anybody help me.
In my machine am getting output, when it is in IIS getting this error.What's wrong in my coding plase any one help me.
Posted
Updated 5-Feb-15 22:58pm
v9
Comments
Kenneth Haugland 2-Feb-15 5:10am    
Document doc = new Document()?
Kenneth Haugland 3-Feb-15 0:31am    
Wait, are you doing this on a clients machine? What happens if they don't have Word installed?
santhu888 3-Feb-15 0:49am    
It is working properly in my local machine. But When it is kept in IIS and server machine,It is giving above exception.Please Help me out.
santhu888 3-Feb-15 0:51am    
My server machine already has word installation.
Dominic Abraham 6-Feb-15 5:58am    
Check the credentials of the user who is running IIS/Web application.

1 solution

See here:
http://support.microsoft.com/kb/316384[^]

C#
private void button1_Click(object sender, System.EventArgs e)
{
	object oMissing = System.Reflection.Missing.Value;
	object oEndOfDoc = "\\endofdoc"; /* \endofdoc is a predefined bookmark */ 

	//Start Word and create a new document.
	Word._Application oWord;
	Word._Document oDoc;
	oWord = new Word.Application();
	oWord.Visible = true;
	oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,
		ref oMissing, ref oMissing);

	//Insert a paragraph at the beginning of the document.
	Word.Paragraph oPara1;
	oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);
	oPara1.Range.Text = "Heading 1";
	oPara1.Range.Font.Bold = 1;
	oPara1.Format.SpaceAfter = 24;    //24 pt spacing after paragraph.
	oPara1.Range.InsertParagraphAfter();

	//Insert a paragraph at the end of the document.
	Word.Paragraph oPara2;
	object oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
	oPara2 = oDoc.Content.Paragraphs.Add(ref oRng);
	oPara2.Range.Text = "Heading 2";
	oPara2.Format.SpaceAfter = 6;
	oPara2.Range.InsertParagraphAfter();

	//Insert another paragraph.
	Word.Paragraph oPara3;
	oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
	oPara3 = oDoc.Content.Paragraphs.Add(ref oRng);
	oPara3.Range.Text = "This is a sentence of normal text. Now here is a table:";
	oPara3.Range.Font.Bold = 0;
	oPara3.Format.SpaceAfter = 24;
	oPara3.Range.InsertParagraphAfter();

	//Insert a 3 x 5 table, fill it with data, and make the first row
	//bold and italic.
	Word.Table oTable;
	Word.Range wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
	oTable = oDoc.Tables.Add(wrdRng, 3, 5, ref oMissing, ref oMissing);
	oTable.Range.ParagraphFormat.SpaceAfter = 6;
	int r, c;
	string strText;
	for(r = 1; r <= 3; r++)
		for(c = 1; c <= 5; c++)
		{
			strText = "r" + r + "c" + c;
			oTable.Cell(r, c).Range.Text = strText;
		}
	oTable.Rows[1].Range.Font.Bold = 1;
	oTable.Rows[1].Range.Font.Italic = 1;

	//Add some text after the table.
	Word.Paragraph oPara4;
	oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
	oPara4 = oDoc.Content.Paragraphs.Add(ref oRng);
	oPara4.Range.InsertParagraphBefore();
	oPara4.Range.Text = "And here's another table:";
	oPara4.Format.SpaceAfter = 24;
	oPara4.Range.InsertParagraphAfter();

	//Insert a 5 x 2 table, fill it with data, and change the column widths.
	wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
	oTable = oDoc.Tables.Add(wrdRng, 5, 2, ref oMissing, ref oMissing);
	oTable.Range.ParagraphFormat.SpaceAfter = 6;
	for(r = 1; r <= 5; r++)
		for(c = 1; c <= 2; c++)
		{
			strText = "r" + r + "c" + c;
			oTable.Cell(r, c).Range.Text = strText;
		}
	oTable.Columns[1].Width = oWord.InchesToPoints(2); //Change width of columns 1 & 2
	oTable.Columns[2].Width = oWord.InchesToPoints(3);

	//Keep inserting text. When you get to 7 inches from top of the
	//document, insert a hard page break.
	object oPos;
	double dPos = oWord.InchesToPoints(7);
	oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range.InsertParagraphAfter();
	do
	{
		wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
		wrdRng.ParagraphFormat.SpaceAfter = 6;
		wrdRng.InsertAfter("A line of text");
		wrdRng.InsertParagraphAfter();
		oPos = wrdRng.get_Information
                       (Word.WdInformation.wdVerticalPositionRelativeToPage);
	}
	while(dPos >= Convert.ToDouble(oPos));
	object oCollapseEnd = Word.WdCollapseDirection.wdCollapseEnd;
	object oPageBreak = Word.WdBreakType.wdPageBreak;
	wrdRng.Collapse(ref oCollapseEnd);
	wrdRng.InsertBreak(ref oPageBreak);
	wrdRng.Collapse(ref oCollapseEnd);
	wrdRng.InsertAfter("We're now on page 2. Here's my chart:");
	wrdRng.InsertParagraphAfter();

	//Insert a chart.
	Word.InlineShape oShape;
	object oClassType = "MSGraph.Chart.8";
	wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
	oShape = wrdRng.InlineShapes.AddOLEObject(ref oClassType, ref oMissing, 
		ref oMissing, ref oMissing, ref oMissing,
		ref oMissing, ref oMissing, ref oMissing);

	//Demonstrate use of late bound oChart and oChartApp objects to
	//manipulate the chart object with MSGraph.
	object oChart;
	object oChartApp;
	oChart = oShape.OLEFormat.Object;
	oChartApp = oChart.GetType().InvokeMember("Application",
		BindingFlags.GetProperty, null, oChart, null);

	//Change the chart type to Line.
	object[] Parameters = new Object[1];
	Parameters[0] = 4; //xlLine = 4
	oChart.GetType().InvokeMember("ChartType", BindingFlags.SetProperty,
		null, oChart, Parameters);

	//Update the chart image and quit MSGraph.
	oChartApp.GetType().InvokeMember("Update",
		BindingFlags.InvokeMethod, null, oChartApp, null);
	oChartApp.GetType().InvokeMember("Quit",
		BindingFlags.InvokeMethod, null, oChartApp, null);
	//... If desired, you can proceed from here using the Microsoft Graph 
	//Object model on the oChart and oChartApp objects to make additional
	//changes to the chart.

	//Set the width of the chart.
	oShape.Width = oWord.InchesToPoints(6.25f);
	oShape.Height = oWord.InchesToPoints(3.57f);

	//Add text after the chart.
	wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
	wrdRng.InsertParagraphAfter();
	wrdRng.InsertAfter("THE END.");

	//Close this form.
	this.Close();
}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900