在C#/ WPF应用程序中使用pdflatex.exe将TeX转换为PDF

| 有没有人在他们的C#/ WPF应用程序中使用pdflatex.exe从TeX文档创建PDF文档?我有我的TeX文档,我想将其转换为PDF并在应用程序中显示,但是,我不确定如何进行此操作,几乎没有网上可以找到类似此操作的信息。有谁知道做这种事情的最好方法是什么(在C#应用程序中通过pdflatex.exe将TeX文档转换为PDF)? 非常感谢!     
已邀请:
这是我使用的代码。它假定源与可执行文件位于同一文件夹中,并在需要时包括运行BibTeX(如果需要,仅排除第二个进程)。
string filename = \"<your LaTeX source file>.tex\";
Process p1 = new Process();
p1.StartInfo.FileName = \"<your path to>\\pdflatex.exe\";
p1.StartInfo.Arguments = filename;
p1.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p1.StartInfo.RedirectStandardOutput = true;
p1.StartInfo.UseShellExecute = false;

Process p2 = new Process();
p2.StartInfo.FileName = \"<your path to>\\bibtex.exe\";
p2.StartInfo.Arguments = Path.GetFileNameWithoutExtension(filename);
p2.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
p2.StartInfo.RedirectStandardOutput = true;
p2.StartInfo.UseShellExecute = false;

p1.Start();
var output = p1.StandardOutput.ReadToEnd();
p1.WaitForExit();

p2.Start();
output = p2.StandardOutput.ReadToEnd();
p2.WaitForExit();

p1.Start();
output = p1.StandardOutput.ReadToEnd();
p1.WaitForExit();

p1.Start();
output = p1.StandardOutput.ReadToEnd();
p1.WaitForExit();
是的,可以稍微清理一下,当然不用循环调用BibTeX就可以了(建议使用3次以确保所有引用正确)。另外,没有异常处理,因此您可能想在流程调用等周围添加try / catch块。     
我从未这样做过,但这完全有可能。您需要使用System.Diagnostics.Process类来运行pdflatex.exe 剩下的就是选择运行方式。您可能在这里有一些选择: 如果pdflatex支持将输出写入“标准输出”,则可以拦截该输出,并随心所欲地处理内容。 另一种选择是使用一些临时文件夹将文件写入并订阅有关文件夹更改的通知(异步,您可以运行pdflatex的多个实例),或者只是等待过程完成(同步,您只能在以下位置运行pdflatex的一个实例)一次)。     

要回复问题请先登录注册