我可以在我的C#/ WPF应用程序中创建PDF并使用以下命令运行它们:
Process.Start(_pathToPDFFile);
这适用于Adobe Acrobat,但不适用于Adobe Reader。安装Adobe Reader时,除非Reader进程已在任务管理器中运行,否则Process.Start()
不会执行任何操作。
当我尝试启动PDF时如何让Adobe Reader显示PDF?
答案 0 :(得分:1)
在我们的例子中,问题只能在从Visual Studio启动应用程序时重现 - 启动.exe直接按预期工作。
经过一些调试后,结果发现Visual Studio设置为始终以管理员身份运行,这会导致问题。关闭它(which is hard enough itself)可以解决问题。
但仍然不确定为什么会发生这种情况。
答案 1 :(得分:0)
我是这样做的,可能有办法从注册表中恢复AcroRd32.exe的确切路径,但是:
String pathToAcroRd32 = Environment.GetEnvironmentVariable("ProgramFiles") + ((Environment.Is64BitOperatingSystem) ? @" (x86)\" : @"\") + "Adobe\Reader 11.0\Reader\AcroRd32.exe";
ProcessStartInfo adobeInfo = new ProcessStartInfo(pathToAcroRd32, _pathToPDFFile);
Process.Start(adobeInfo);
还要根据要启动的Acrobat Reader版本(如果与Adobe Reader 11.0不同),您可能需要更改路径。
答案 2 :(得分:0)
也许尝试这样的事情?我尝试使用Adobe Reader 11在Windows 8上编写代码,它似乎对我来说很好。也许有问题的机器还有其他问题?
var process = new Process();
process.StartInfo = new ProcessStartInfo(@"Path to your PDF.pdf");
process.StartInfo.CreateNoWindow = true;
process.StartInfo.UseShellExecute = true;
process.Start();
答案 3 :(得分:0)
首先,您必须检查Adobe Reader是否是pdf文件的默认程序。您可以在控制面板中查看它 - >程序 - >默认程序 - >设置关联。
如果Adobe Reader是默认的PDF程序,那么您的代码应该可以在Windows 8上运行,实际上在大多数版本的Windows中。
如果Adobe Reader不是默认的PDF程序,则必须获取AcroRd32.exe的路径。这个post可以帮到你。然后在Hybris95的答案中执行代码。
答案 4 :(得分:0)
我没有看到您的完整代码,但我通过设置解决了类似的问题
ProcessStartInfo.UseShellExecute
为真。
答案 5 :(得分:0)
我仍然遇到此问题,无法打开AcroRd32.exe,只需在任务管理器中停留。 一种可能的解决方案是选择chrome.exe来启动PDF。
像这样:
var p = new Process
{
StartInfo = new ProcessStartInfo(@"chrome.exe", path)
{
WindowStyle = ProcessWindowStyle.Maximized
}
};
p.Start();