Word to HTML Converter using ASP.Net 2.0 and Microsoft 11.0 object Library



Using Microsoft object library you can do many functionalities like creating new document, appending existing document, counting no of lines, size of the document, Spell Check etc....
Required:

This application require to have COM reference to the project, which can be done as:

Right clicking in the solution explorer on References->>Add Reference.

Click on the COM tab and look for the Microsoft Word 11.0 Object Library. Click Select and OK.

You can use the following code in your .cs page as:

using Microsoft.Office;

using Microsoft.Office.Interop.Word;
In this project I am uploading file with only extension .DOC to a folder called as "Uploaded" and converting to HTML document and storing the HTML in "WordToHtml" folder.
Some of the declarations required in the project are as follows:    

protected Microsoft.Office.Interop.Word.ApplicationClass objWord = new ApplicationClass();

//This creates new object of Word.ApplicationClass

protected string strPathToUpload;

//Path to upload files "Uploaded"

protected string strPathToConvert;

//Path to convert uploaded files and save

object fltDocFormat = 10;

//For filtered HTML Output

protected object missing = System.Reflection.Missing.Value;

//Is just to skeep the parameters which are passed as boject reference, these are seems to be optional parameters

protected object readOnly = false;

protected object isVisible = false;

//The process has to be in invisible mode
On a aspx page I am having only two controls as:

<asp:FileUpload ID="fUpload" runat="server"/> &
<asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="Upload" />

On button click executes following functionality:

protected void btnUpload_Click(object sender, EventArgs e)

{

    //Code to check if user has selected any file on the form

    if (!(fUpload.HasFile))

    {

        lblMessage.Text = "Please choose file to upload";

    }

    else

    {

        try

        {

            //To check the file extension if it is word document or something else

            string strFileName = fUpload.FileName;

            string[] strSep = fUpload.FileName.Split('.');

            int arrLength = strSep.Length - 1;

            string strExt = strSep[arrLength].ToString().ToUpper();

            //Save the uploaded file to the folder

            strPathToUpload = Server.MapPath("Uploaded");

            //Map-path to the folder where html to be saved

            strPathToConvert = Server.MapPath("WordToHtml");

            object FileName = strPathToUpload + "\\" + fUpload.FileName;

            object FileToSave = strPathToConvert + "\\" + fUpload.FileName + ".htm";

            if (strExt.ToUpper().Equals("DOC"))

            {

                fUpload.SaveAs(strPathToUpload + "\\" + fUpload.FileName);

                lblMessage.Text = "File uploaded successfully";

                //open the file internally in word. In the method all the parameters should be passed by object reference

                objWord.Documents.Open(ref FileName, ref readOnly, ref missing, ref missing, ref missing, ref missing,
                
ref missing, ref 
 missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing,
                
ref missing, ref missing);

                //Do the background activity

                objWord.Visible = false;

                Microsoft.Office.Interop.Word.Document oDoc = objWord.ActiveDocument;

                oDoc.SaveAs(ref FileToSave, ref fltDocFormat, 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);

                lblMessage.Text = fUpload.FileName + " converted to HTML successfully";

            }

            else

            {

                lblMessage.Text = "Invalid file selected!";

            }

            //Close/quit word

            objWord.Quit(ref missing, ref missing, ref missing);

        }

        catch (Exception ex)

        {

            Response.Write(ex.Message);

        }

    }

}
Note: The constant object fltDocFormat = 10; is a unique number that specifies an external file converter. Setting it to 10 creates Filtered HTML files. For regular HTML output use the number 8. This will produce bigger HTML files but will maintain the Word formatting.
On some of the machines you need to have "IUSER_MACHINE" rights to upload files to particular folders.

Up Next
    Ebook Download
    View all
    Learn
    View all