I'm trying to convert doc or docx file to PDF using visual studio 2013. C# language.
I don't get any errors but program doesn't work.
I get this output message: "The program '[9240] PDFConversion.vshost.exe' has exited with code 0 (0x0)."
Thank you for any help.
using System;using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.IO;
using System.Text;
using Microsoft.Office.Interop.Word;
namespace PDFConversion
{
public static class Program
{
public static void Main(string[] args)
{
if (args.Count() > 1)
{
translate.ConvertAllWordFilesToPdf(args[0], args[1]);
}
}
public class translate
{
public static void ConvertAllWordFilesToPdf(string WordFilesLocation, string PdfFilesLocation)
{
Document doc = null;
object oMissing = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Word.Application word = null;
try
{
word = new Microsoft.Office.Interop.Word.Application();
DirectoryInfo dirInfo = new DirectoryInfo(WordFilesLocation);
FileInfo[] wordFiles = dirInfo.GetFiles("*.doc");
if (wordFiles.Length > 0)
{
word.Visible = false;
word.ScreenUpdating = false;
string sourceFile = "";
string destinationFile = "";
try
{
foreach (FileInfo wordFile in wordFiles)
{
Object filename = (Object)wordFile.FullName;
sourceFile = wordFile.Name;
destinationFile = "";
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 = null;
if (wordFile.FullName.ToUpper().Contains(".DOCX"))
{
outputFileName = wordFile.FullName.Replace(".docx",".pdf");
destinationFile = sourceFile.Replace(".docx",".pdf");
}
else
{
outputFileName = wordFile.FullName.Replace(".doc",".pdf");
destinationFile = sourceFile.Replace(".doc",".pdf");
}
sourceFile = WordFilesLocation + "\\" + destinationFile;
destinationFile = PdfFilesLocation + "\\" + destinationFile;
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;
if (System.IO.File.Exists(destinationFile))
{
System.IO.File.Replace(sourceFile, destinationFile, null);
}
else
{
System.IO.File.Move(sourceFile, destinationFile);
}
Console.WriteLine("Success:" + "SourceFile-" + outputFileName.ToString() + " DestinationFile-" + destinationFile);
}
((_Application)word).Quit(ref oMissing, ref oMissing, ref oMissing);
word = null;
}
catch (Exception ex)
{
Console.WriteLine("Fail:" + "SourceFile-" + sourceFile + " DestinationFile-" + destinationFile + "#Error-" + ex.Message);
}
}
}
catch (Exception ex)
{
Console.WriteLine("Error occured while processing");
Console.WriteLine(ex.Message);
}
finally
{
if (doc != null)
{
((_Document)doc).Close(ref oMissing, ref oMissing, ref oMissing);
doc = null;
}
if (word != null)
{
((_Application)word).Quit(ref oMissing, ref oMissing, ref oMissing);
word = null;
}
}
}
}
}
}