0

这是我的场景:我有一个将 html 文件转换为 pdf 的可执行文件。此 exe 仅在您从其文件夹启动时才有效。示例:exe 在 C:\HtmlToPdf 中,因此,在提示符中我将执行以下操作:

C:\> cd HtmlToPdf
C:\HtmlToPdf> htmltopdf.exe htmlFile pdfFile

那么,有没有办法在 c# 中做到这一点?因为我试过这个:

FileInfo htmlInfo = new FileInfo(executablePath + @"\" + filename);
var procInfo = new ProcessStartInfo("wkhtmltopdf.exe",htmlInfo.FullName + " " + htmlInfo.FullName.Replace(".html",".pdf"));

procInfo.WorkingDirectory=executablePath;
procInfo.UseShellExecute = false;
Process.Start(procInfo);

但它不起作用。

4

2 回答 2

3

wkhtmltopdf 的文档/wiki指出,如果您使用其完整路径,它将很难找到文件。您需要附加file:///到文件名的开头

请注意,在 Windows 上,您目前不能对 HTML 文件的驱动器使用绝对路径名:

wkhtmltopdf d:\temp\x.html x.pdf

将失败。您需要使用 file:/// URL:

wkhtmltopdf file:///d:/tmp/x.html x.pdf

这个答案可能有助于附加

于 2013-08-07T07:11:14.923 回答
0

从您调用 EXE 的位置......无论是其 Windows 窗体应用程序还是 Web 窗体......

If its windows forms it will work

else

if its Webforms like asp.net you have to change the properties of IIS Server to start the exe

Because due to some security reasons microsoft will not allow you to start the process class from IIS server... but the same code will work from Visualstudio ..

这是我的代码

获取当前 Exe 可执行文件路径

 string sCurrentPAth =  Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

  Process.Start(@"E:\Debug\MyExe.exe", "arg1 arg2 arg3");

它的工作正常......

于 2013-08-07T08:26:36.357 回答