代码之家  ›  专栏  ›  技术社区  ›  Steve

在指定目的地以编程方式打开pdf文件

  •  7
  • Steve  · 技术社区  · 17 年前

    我想用WinForms(C#)在指定的目的地打开一个PDF文件。这是我的代码:

    System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
    myProcess.StartInfo.FileName = "Acrobat.exe";
    myProcess.StartInfo.Arguments = "/A \"nameddest=Test2=OpenActions\" C:\\example.pdf";
    myProcess.Start();
    

    它总是在第1页打开文件,即使目标测试2在第10页。它基本上忽略了目标参数。但是,如果我使用另一个参数,比如页码,它可以正常工作。例如:

    myProcess.StartInfo.Arguments = "/A \"page=5=OpenActions\" C:\\example.pdf";
    

    将始终在第5页打开PDF文档。

    提前谢谢你的帮助

    5 回复  |  直到 17 年前
        1
  •  6
  •   jcibar    10 年前

    我使用以下代码:

    string strNamedDestination  = "MyNamedDestination"; // Must be defined in PDF file.
    string strFilePath = "MyFilePath.pdf";
    string strParams = " /n /A \"pagemode=bookmarks&nameddest=" + strNamedDestination + "\" \"" + strFilePath + "\"";
    Process.Start("AcroRd32.exe", strParams);
    

    注意参数中的“/n”。它使Adobe总是打开一个新文档。否则,如果文档已打开,则不会将其移动到名为“目标”的右侧。这取决于您的应用程序所需的行为。

        2
  •  2
  •   SteveSteve    17 年前

    关于从命令shell打开PDF文档时的Adobe文档,可以使用/a开关使用以下语法将参数传递给open命令:

    myProcess.StartInfo.Arguments = "/A \"nameddest=Test2=OpenActions\" C:\\example.pdf";
    

    如果我省略OpenActions参数,一切工作正常,比如:

    myProcess.StartInfo.Arguments = "/A \"nameddest=Test2\" C:\\example.pdf";
    

    我不知道为什么OpenActions会中断打开文件的操作,但是如果忽略了它,就可以正常工作了。

        3
  •  2
  •   Dori Nimit Parekh    14 年前

    我有一个有5列的csv。 Column1包含PDF名称和Column5页码。 可执行文件显示csv。 当我双击csv中的一行时,将执行以下代码:

    ListViewItem item = lvwItems.SelectedItems[0];
    Process myProcess = new Process();
    myProcess.StartInfo.FileName = "Acrobat.exe";
    myProcess.StartInfo.Arguments = "/A page=" + item.SubItems[4].Text + " " + item.Text;
    myProcess.Start();
    

    这将打开名为的选定PDF item.Text 在页码所在的页上 item.SubItems[4].Text

        4
  •  0
  •   BFree    17 年前

    你把目的地安排好了吗?要做到这一点,您需要具备标准版或专业版的Adobe Acrobat:

    http://kb2.adobe.com/cps/317/317300.html

        5
  •  0
  •   Gloria Sadowski    16 年前

    Adobe Reader在打开指定目标时有一些错误。看一看 http://xenon.arcticus.com/open-pdf-named-destination-dde-c-c 一些信息和解决办法。

    推荐文章