从Word 2013链接到PDF文件页面

时间:2014-04-16 05:51:43

标签: pdf ms-word word-vba

根据不同的来源,应该可以通过附加后缀:#page =来超链接到其他应用程序的PDF文件中的特定页面,例如:

C:\Temp\Examplefile.pdf#page=5

这不适用于Word 2013.我已经读过它取决于在客户端和文件扩展名关联上安装为PDF文件阅读器的应用程序和版本,但我认为这是Word 2013的问题。同样计算机我可以使用以下HTML代码从HTML文件成功超链接到PDF页面,然后单击Internet Explorer中的链接:

<HTML><BODY><A HREF="C:\Temp\Examplefile.pdf#page=5" TARGET="_TOP"> PDF-File </A></BODY></HTML>

我尝试使用Adobe Reader XI和Adobe Acrobat 9 Pro作为PDF文件阅读器,但没有成功。 PDF文件打开,但它显示第一页,而不是第五页。

有谁知道如何成功超链接到Word 2013的PDF文件中的特定页面?我也对涉及VBA代码的解决方案持开放态度。

5 个答案:

答案 0 :(得分:2)

这个问题是我多年来一直在努力解决的问题,我最终确实让它发挥了作用。我有一些PDF格式的旧杂志,我想在Word中创建一个索引,其中包含针对每个索引条目的超链接,我可以将其转换为PDF文件,这样点击PDF文件中任何索引条目的链接就可以了在正确的页面打开正确的杂志PDF文件。有几个问题。

  1. 如果在Web浏览器中打开PDF文件,则在Word中使用超链接格式'C:\ Temp \ Examplefile.pdf#page = 5',如上所述将起作用,或者,如果直接在Adobe Reader中打开文件,则在目标PDF文件的每个页面上都有一个名为“page =#”(其中#=页码)的PDF目标。通常情况下,人们会想要第二种选择,就是我想到的那种工作。

  2. 我知道几个Word到PDF的转换程序会正确创建链接,以便在Adobe Reader而不是Web浏览器中打开PDF。如果配置正确,LibreOffice 5会正确执行,除非它将'page = 5'更改为'page3D5'。曾经有一个名为Jaws PDF的程序在Windows XP下正确完成了所有转换,但我相信现在市场还没有。因此,目前我所知道的最佳选择是使用LibreOffice将Word文件转换为PDF文件,并使用格式为“C:\ Temp \ Examplefile.pdf#page5”的超链接来避免等号的问题。我还没有测试过最新版本的Word。

  3. 这就留下了如何创建PDF目标的问题。您可以使用Adobe Acrobat或Nitro Pro PDF,例如手动,但必须手动为文档的每个页面创建一个PDF目标不是我希望任何人的任务。我这样做的方法是使用Adobe Acrobat和一个名为Auto BookMark(https://www.evermap.com/autobookmark.asp)的插件,它允许您自动为PDF文件的每个页面创建目的地。顺便提一下,还有一种方法可以使用这个插件来编辑所有超链接,这样它们就可以在给定的页面上打开PDF文件而不创建任何PDF目的地,但它相当复杂,我还没有看到任何Adobe文献中记录的方法,所以我避免使用它。

  4. 最后,如果你正在考虑做我做的事情,在上面的超链接上使用绝对地址可能不是很有用。但是,我可以使用相对寻址来报告,例如像'.. \ _杂志\ 1985.pdf#page20'这样的东西也应该有用。

  5. 我会感谢其他人在这个问题上提供的更多信息,因为它在过去八年左右的时间里花了很多时间。

答案 1 :(得分:2)

我已经成功地测试了这个简短的宏,在第4页打开一个保存的PDF文件,将是:

preferredPresentationSize

如果代码无效,请检查Acrobat阅读器路径,
如果Acrobat Reader正在打开而不是文件,则在Page_Num和File_path之间添加空格。

致谢:Michael Avidan

答案 2 :(得分:1)

似乎“将Word文档中的超链接创建为PDF中的特定页面或目标的唯一方法是,如果PDF文件位于Web服务器中,并且您创建了指向PDF URL的链接”,则在AcrobatUsers.com上引用answer。因此,您将使用带有http://unicode.org/charts/PDF/U0080.pdf#page=5之类的URL的链接(以采取任意工作示例)。

嗯,任何HTTP服务器都应该这样做,它不需要在Web上,但可以是Intranet服务器,甚至可以是打开Word文档的计算机的本地服务器。但重点是,当您链接到http://地址时,该链接将在Web浏览器中打开,该浏览器可以处理URL末尾的#page=5等片段部分。

答案 3 :(得分:1)

您可以使用宏脚本来帮助解决此问题,但在选择超链接时,您必须指定一个快捷键来运行宏脚本。

此链接应该有所帮助:Create hyperlink to a specific PDF page in Microsoft Word for Windows

编辑:如果以上链接不起作用,或者您在按照网站上的步骤或宏脚本时遇到问题,请按照以下步骤操作:

  1. 如果您可以看到Developer标签,则可以跳过第2步,否则请继续执行第2步

  2. 要显示开发人员标签,您需要导航至File&gt; Options&gt; Customize Ribbon

  3. 勾选Developer check box

    1. 导航至Developer tab,然后点击Macros button

    2. Macros name下的文本框中输入宏脚本的名称:然后点击按钮Create,名称可以是您想要的任何内容

    3. 应出现new window,您需要输入以下代码:

    4. 以下代码介于Sub [name of script]()之间(其中[脚本名称]替换为您为脚本指定的名称)和End Sub

      Dim targetLink As String
      Dim targetName As String
      Dim pageNumber As Integer
      Dim pathPDF As String
      targetName = Selection.Hyperlinks(1).Name
      parts = Split(targetName, "page=")
      pageNumber = parts(1)
      pathPDF = Selection.Hyperlinks(1).Address
      Call OpenPagePDF(pathPDF, pageNumber)
      

      下一段代码在End Sub

      之后
      Public Function OpenPagePDF(sMyPDFPath As String, iMyPageNumber As Integer)
      Dim RtnCode, AdobePath As String
      AdobePath = "Path to Acrobat Reader"
      RtnCode = Shell(AdobePath & " /a " & Chr(34) & "page=" & iMyPageNumber & "=OpenActions" & Chr(34) & " " & Chr(34) & sMyPDFPath & Chr(34), 1)
      End Function
      

      整个代码应如下所示:

      Sub [Name Of Script]()
      Dim targetLink As String
      Dim targetName As String
      Dim pageNumber As Integer
      Dim pathPDF As String
      targetName = Selection.Hyperlinks(1).Name
      parts = Split(targetName, "page=")
      pageNumber = parts(1)
      pathPDF = Selection.Hyperlinks(1).Address
      Call OpenPagePDF(pathPDF, pageNumber)
      End Sub
      
      Public Function OpenPagePDF(sMyPDFPath As String, iMyPageNumber As Integer)
      Dim RtnCode, AdobePath As String
      AdobePath = "Path to Acrobat Reader"
      RtnCode = Shell(AdobePath & " /a " & Chr(34) & "page=" & iMyPageNumber & "=OpenActions" & Chr(34) & " " & Chr(34) & sMyPDFPath & Chr(34), 1)
      End Function
      

      请注意,这不会立即生效,因为您需要提供Acrobat Reader的路径,这在步骤6中已得到解答

      1. 要查找Acrobat Reader,您需要找到文件夹&#34; Adob​​e&#34; (通常位于Program FilesProgram Files (x86)
      2. 当您找到该文件夹​​时,您需要导航至Reader 11.0&gt; Reader

        您应该看到名为AcroRd32.exeAcroRd64.exe

        的可执行文件

        Acrobat Reader的位置是在Windows资源管理器顶部找到的address和地址末尾的\ [可执行文件名称],其中[可执行文件名称]替换为名称在可执行文件中,该位置的示例是C:\Program Files (x86)\Adobe\Reader 11.0\Reader\AcroRd32.exe

        1. 一旦你更换了#34; Acrobat Reader的路径&#34;使用Acrobat Reader的位置,脚本应该可以正常工作

        2. 在运行脚本之前,首先需要将光标放在超链接

        3. 有两种方法可以运行脚本,您可以设置快捷键来运行它(这可以从步骤11中解释),也可以手动访问宏脚本来运行它(这在下一步)

        4. 要手动运行脚本,请点击Developer tab,点击Macros button并选择您的宏脚本,然后点击Run

        5. 要设置快捷键以运行脚本,请导航至File&gt; Options&gt; Customize Ribbon,然后点击文字旁边名为Customize的按钮&#34;键盘快捷键&#34;

        6. 使用文本&#34;类别下的列表:&#34;选择Macros并使用右侧列表选择您的脚本

        7. 点击文字&#34下的textbox;按新快捷键:&#34;并输入将运行脚本的组合键

        8. 点击按钮Assign并关闭两个窗口

        9. 现在,每当您将光标放在超链接上时使用快捷键,它都应该在正确的页面上加载PDF

答案 4 :(得分:1)

所有引号都是必需的。

  1. 打开MS PowerPoint文件
  2. 选择用于超链接到的文本或图形 PDF。
  3. 从主菜单中选择“插入”,然后单击“操作”。
  4. 在“操作设置”窗口的“鼠标单击”选项卡上,启用“运行程序”。
  5. 包括引号,键入或粘贴

    • "Path to PDF exe/exe file"/A"page=#OpenActions" "path to PDF/PDF file"

    • "Path to PDF exe/exe file"示例:

    “ C:\ Program Files(x86)\ Adob​​e \ Acrobat 2017 \ Acrobat \ Acrobat.exe” “ C:\ Program Files(x86)\ Adob​​e \ Acrobat Reader 2017 \ Reader \ AcroRd32.exe”

    • "page=#OpenActions"示例以在第205页打开PDF:

    “ page = 205OpenActions”

    • "path to PDF/PDF file"示例:

    “ C:\ Users \ Richard \ Desktop \ Big Help.pdf”

完整示例:

"C:\Program Files (x86)\Adobe\Acrobat 2017\Acrobat\Acrobat.exe"/A"page=25OpenActions""C:\Users\Richard\Desktop\Big Help.pdf"

请注意,如果将MS Word或PowerPoint文件转换为PDF,则该链接将不会进行PDF转换。