使用参数(页面/命名目标)打开PDF而不引用特定程序

时间:2014-03-21 20:37:47

标签: c# .net vb.net winforms pdf

感谢您花时间阅读我的窘境。

我需要打开PDF(C#4.0,winforms)。现在通常,如果你没有传递参数(Process.Start到PDF),这很容易,但我需要能够传入参数(现在转到特定页面或命名目标,可能更晚一些) )。

现在我知道如果您调用AcroRd32,您可以传递执行此操作所需的参数,但用户可能无法在其计算机上安装Acrobat Reader,因此我并不是真的想要必须要称之为exe。任何人都知道如何解决这个问题?

我是否错过了一种使用其他东西的明显方法呢?

感谢您的帮助!

PS - 回复可以是C#或VB,不在乎

1 个答案:

答案 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将打开。