public class OfficeConvert
   {
       static string getLibreOfficePath()
       {
           switch (Environment.OSVersion.Platform)
           {
               case PlatformID.Unix:
                   return "/usr/bin/soffice";
               case PlatformID.Win32NT:
                   string binaryDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                   return binaryDirectory + "\\Windows\\program\\soffice.exe";
               default:
                   throw new PlatformNotSupportedException("你的系统暂不支持!");
           }
       }
 
       public static void ToPdf(string officePath, string outPutPath)
       {
           
           string libreOfficePath = getLibreOfficePath();
            
           ProcessStartInfo procStartInfo = new ProcessStartInfo(libreOfficePath, string.Format("--convert-to pdf --outdir {0} --nologo {1}", outPutPath, officePath));
           procStartInfo.RedirectStandardOutput = true;                                         
           procStartInfo.UseShellExecute = false;
           procStartInfo.CreateNoWindow = true;
           procStartInfo.WorkingDirectory = Environment.CurrentDirectory;
 
           
           Process process = new Process() { StartInfo = procStartInfo, };
           process.Start();
           process.WaitForExit();
 
           if (process.ExitCode != 0)
           {
               throw new LibreOfficeFailedException(process.ExitCode);
           }
       }
   }
 
   public class LibreOfficeFailedException : Exception
   {
       public LibreOfficeFailedException(int exitCode)
           : base(string.Format("LibreOffice错误 {0}", exitCode))
       { }
   }