Without using external components (such as Aspose.Words, which is paid), can be done as follows, using Word interoperability objects:
private Microsoft.Office.Interop.Word.ApplicationClass MSdoc;
object Unknown = Type.Missing;
private void word2PDF(object Source, object Target)
{
if (MSdoc == null)MSdoc = new Microsoft.Office.Interop.Word.ApplicationClass();
try
{
MSdoc.Visible = false;
MSdoc.Documents.Open(ref Source, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown, ref Unknown, ref Unknown);
MSdoc.Application.Visible = false;
MSdoc.WindowState = Microsoft.Office.Interop.Word.WdWindowState.wdWindowStateMinimize;
object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatPDF;
MSdoc.ActiveDocument.SaveAs(ref Target, ref format,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown, ref Unknown,
ref Unknown, ref Unknown);
}
catch (Exception e)
{
MessageBox.Show(e.Message);
}
finally
{
if (MSdoc != null)
{
MSdoc.Documents.Close(ref Unknown, ref Unknown, ref Unknown);
//WordDoc.Application.Quit(ref Unknown, ref Unknown, ref Unknown);
}
WordDoc.Quit(ref Unknown, ref Unknown, ref Unknown);
}
}
I took it from here.
The problem is that it requires Word installed on the server, which is not a good one for ASP.NET MVC applications.
I intend to improve this answer as soon as I get a good alternative at no cost that makes this conversion.
Its application is ASP.NET MVC?
– Leonel Sanches da Silva
Yes, Asp.net mvc.
– Zica