在C#进程中正确使用命令行

时间:2016-07-10 15:47:30

标签: c# cmd process libreoffice

我有以下问题:

我正在尝试使用libre office将odt文件转换为pdf。当我使用这个cmd行时,效果很好:

"C:\Program Files (x86)\LibreOffice 5\program\soffice.exe" 
--headless --convert-to pdf 
--outdir "C:\tmp" "C:\Program Files (x86)\LibreOffice 5\program\File1.odt"

现在我尝试用C#实现这一点:

    private void ConvertOdtFileToPdf(string fileName)
    {
        var startInfo = new ProcessStartInfo
        {
            WorkingDirectory = ConfigManager.OutputPath,
            WindowStyle = ProcessWindowStyle.Hidden,
            FileName = "soffice.exe",
            Arguments = $"--headless --convert-to pdf --outdir \"{Path.GetDirectoryName(fileName)}\" \"{fileName}\""
        };
        Process.Start(startInfo);
    }

所以在这里我想将首先生成的文件转换为pdf并将其保存到同一路径。但是这不起作用。绝对没有。我试图将WorkingDirectory更改为LibreOffice目录但仍无效。有什么问题?

谢谢!

0 个答案:

没有答案