使用C#/ VB.NET打开包含打开参数的PDF

时间:2016-01-05 04:16:08

标签: c# vb.net pdf

关于如何使用C#打开PDF到特定页面的this question已接受的答案,总结如下:

import java.awt.*;
import java.awt.event.*;
import java.awt.Toolkit.*;
public class Test{
    public static void main(String[] args){ 
            Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
                public void eventDispatched(AWTEvent e) {
                    if(e instanceof MouseEvent){
                        MouseEvent event = (MouseEvent)e;
                        if(event.getID() == MouseEvent.MOUSE_PRESSED){}
                            System.out.println("test");
                        }
                    }
                }
            }, AWTEvent.MOUSE_EVENT_MASK);

    }
}

但是,这个答案似乎不完整。如果Adobe Reader(acroRd32.exe) 已在运行,但是如果Reader 正在运行,则效果很好这段代码不会做任何事情(至少在我的Windows 8.1 PC上)。那么,如何使用C#(或VB.NET)打开PDF到指定页面,无论是否已经在运行Adobe Reader?

1 个答案:

答案 0 :(得分:0)

结果诀窍是添加" / n"切换到PDF路径之前的参数字符串,如下所示:

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

根据Acrobat developer FAQ,/ n开关"启动单独的Acrobat或Adobe Reader实例,即使其中一个当前处于打开状态。"我无法想象你不想想要使用这个开关的情况(当按照OP中的描述打开PDF时),所以令人惊讶的是,很少有人提到这个开关。关于这个主题的数十个建议的解决方案。