感谢您花时间阅读我的窘境。
我需要打开PDF(C#4.0,winforms)。现在通常,如果你没有传递参数(Process.Start到PDF),这很容易,但我需要能够传入参数(现在转到特定页面或命名目标,可能更晚一些) )。
现在我知道如果您调用AcroRd32,您可以传递执行此操作所需的参数,但用户可能无法在其计算机上安装Acrobat Reader,因此我并不是真的想要必须要称之为exe。任何人都知道如何解决这个问题?
我是否错过了一种使用其他东西的明显方法呢?
感谢您的帮助!
PS - 回复可以是C#或VB,不在乎
答案 0 :(得分:0)
要传递Process.Start()
中的参数,您需要调用AcroRd32.exe或Acrobat.exe,如:
Process myProcess = new Process();
myProcess.StartInfo.FileName = "acroRd32.exe"; //not the full application path
myProcess.StartInfo.Arguments = "/A \"page=2=OpenActions\" /n C:\\sample.pdf";
myProcess.Start();
我建议将这是一个Try / Catch块,如果失败,则在另一个嵌套的Try / Catch块中尝试使用“Acrobat.exe”作为FileName,如果失败,则默认为:
Process.Start("C:\\sample.pdf");
不允许您打开特定页面,但如果前两种方法失败,至少PDF将打开。