使用C#/VB.NET打开带有打开参数的PDF

本文关键字:参数 PDF VB NET 使用 | 更新日期: 2023-09-27 18:28:55

关于如何使用C#将PDF打开到特定页面的问题,公认的答案是:

Process myProcess = new Process();    
myProcess.StartInfo.FileName = "acroRd32.exe"; //not the full application path
myProcess.StartInfo.Arguments = "/A '"page=2=OpenActions'" C:''example.pdf";
myProcess.Start();

然而,这个答案似乎是不完整的。如果Adobe Reader(acroRd32.exe)尚未运行,则效果非常好,但如果Reader正在运行,则此代码将不会起任何作用(至少在我的Windows8.1 PC上)。那么,无论Adobe Reader是否已经运行,如何使用C#(或VB.NET)以PDF格式打开指定页面?

使用C#/VB.NET打开带有打开参数的PDF

原来诀窍是在PDF路径之前的参数字符串中添加"/n"开关,如下所示:

myProcess.StartInfo.Arguments = String.Format("/A ""zoom={0}&page={1}=OpenActions"" /n ""{2}", strZoom, strPage, strPath)

根据Acrobat开发人员常见问题解答,/n开关"启动Acrobat或Adobe Reader的单独实例,即使其中一个当前打开。"我无法想象您不想使用此开关的情况(如OP中所述打开PDF时),因此令人惊讶的是,在关于此主题的数十个拟议解决方案中很少提及此开关。