问题描述
我可以从命令行执行以下命令,效果很好
exiftool -r -b -PageImage sample.indd > sample.jpg
我的示例代码
string c_arguments = string.Format("-r -b -PageImage {0} > {1}",_DirectoryPath + "\\" + fileName,_DirectoryPath + "\\output.jpg");
var psi = new processstartinfo("exiftool.exe",c_arguments);
psi.UseShellExecute = false;
psi.CreateNowindow = true;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
try
{
using (Process exeProcess = Process.Start(psi))
{
exeProcess.Start();
Console.WriteLine("Executed successfully");
}
}
catch (Exception ex)
{
Console.WriteLine("Error occured,ErrorMsg: " + ex.Message);
}
在exeProcess.Start()执行之后,程序将永远等待,直到没有任何输出。
我在这里想念什么。
解决方法
示例命令行的> sample.jpg
部分是shell重定向,并且是您所使用的shell / terminal / CMD的功能。从程序中启动exiftool时,此功能不可用(请参见this related StackOverflow answer)。
您可能会研究-w
(-textout
) option。请参阅this example command,它比您所需的要复杂,但是应该在创建所需命令方面提供帮助。