【问题标题】:Hyperlink to PDF file page from Word 2013从 Word 2013 到 PDF 文件页面的超链接
【发布时间】:2014-05-30 19:56:23
【问题描述】:

根据不同的来源,应该能够通过附加后缀:#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>

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

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

【问题讨论】:

    标签: vba pdf ms-word


    【解决方案1】:

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

    1. 如果在 Web 浏览器中打开 PDF 文件,当文件转换为 PDF 时,在 Word 中使用上述超链接格式“C:\Temp\Examplefile.pdf#page=5”将起作用,或者,如果文件直接在 Adob​​e Reader 中打开,则在目标 PDF 文件的每一页上都设置了一个名为“page=#”(其中 # = 页码)的 PDF 目标。通常,对于我心目中的那种工作,人们会想要第二种选择。

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

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

    4. 最后,如果您正在考虑像我所做的那样,在超链接上使用上述绝对地址可能不是很有用。但是,我可以报告使用相对寻址,例如'..\magazines\1985.pdf#page20' 之类的东西也应该可以工作。

    如果其他人能就这个问题提供更多信息,我将不胜感激,因为在过去八年左右的时间里,我花了很多时间。

    【讨论】:

    • 感谢分享。但是默认情况下如何使用浏览器打开超链接?即使我将默认应用程序更改为 Edge,我的所有链接都将使用 Nitro Pro。我必须运行 shell 吗?
    【解决方案2】:

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

    Sub macro_name()
         App_Path = "C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe"
         File_Path = "C:\Documents\test.pdf"
         Page_Num = 4
         Shell App_Path & " /A Page=" & Page_Num & ""&File_Path,vbMaximizedFocus
    End Sub
    

    如果代码不起作用,请检查 Acrobat 阅读器路径,
    如果 Acrobat Reader 正在打开但不是文件,则在 Page_Num 和 File_path 的 " " 之间添加空格。

    致谢:迈克尔·阿维丹

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 太棒了!只要计算机客户端在网络浏览器中打开 PDF 文件,就可以获得网络服务器上文件的超链接。
      【解决方案4】:

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

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

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

      1. 如果你能看到Developer标签,你可以跳过第2步,否则继续第2步

      2. 要使开发人员选项卡可见,您需要导航到 File > Options > Customize Ribbon

      然后勾选Developer check box

      1. 导航到Developer tab并点击Macros button

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

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

      下面的代码介于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,您需要找到文件夹“Adobe”(通常位于 Program FilesProgram Files (x86)

      找到文件夹后,您需要导航到 Reader 11.0 > Reader

      您应该会看到一个名为 AcroRd32.exeAcroRd64.exe 的可执行文件

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

      1. 将“Acrobat Reader 的路径”替换为 Acrobat Reader 的位置后,脚本应该可以运行

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

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

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

      5. 要设置运行脚本的快捷键,请导航至File > Options > Customize Ribbon,然后单击文本“键盘快捷键”旁边名为Customize 的按钮

      6. 使用文本“类别:”下的列表选择Macros,然后使用右侧的列表选择您的脚本

      7. 点击文本“Press new shortcut key:”下的textbox,然后输入将运行脚本的组合键

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

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

      【讨论】:

      • 请将链接中的相关信息复制到您的答案中,否则如果/当该链接断开时,它将变得无用。
      【解决方案5】:

      所有引号都是必需的。

      1. 打开 MS PowerPoint 文件
      2. 选择用于超链接的文本或图形 PDF。
      3. 从主菜单中,选择 INSERT,然后单击 Action。
      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)\Adobe\Acrobat 2017\Acrobat\Acrobat.exe” "C:\Program Files (x86)\Adobe\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 转换。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-21
        • 2014-04-15
        • 1970-01-01
        • 2015-09-15
        相关资源
        最近更新 更多