如何保留包含的 PDF 中的超链接?

如何保留包含的 PDF 中的超链接?

我生成了包含带有超链接(指向网站的超链接\href)的图形的 PDF。当我单独编译这些图形时,超链接可以正常工作。但是当我尝试包含这些 PDF(作为图形,而不是来源)时,\includegraphics链接会丢失,并且只有图像会插入到文档中。

有没有办法包含(\includegraphics?)PDF 以便其原始链接在主文档中起作用?

这个问题与外部化(例如 TikZ 或 PGFPlots)有关,外部化也存在这些缺点,即超引用丢失。

答案1

您不能简单地混合两个 PDF 文件。您必须保留 PDF 文档结构。在简单情况下,链接(PDF 注释)将被删除。

您可以尝试PAX项目,尝试提取并重新插入 PDF 注释。

答案2

看来 pdftex 总是从包含的文件中删除所有 PDF 注释(其中包括超链接)。

PDF 格式本身使得其他操作变得相当困难。PDF 注释的布局方式与页面其余内容的构造方式完全不同。它们位于不同的层上,并使用不同的(页面绝对)坐标系进行定位。

答案3

它与 luatex 兼容。但是,它并不稳定。这里语境例子:

\setupinteraction [状态=开始]

\开始文本

  \startbuffer [内部]
    \setupinteraction [状态=开始]
    \开始文本
      \useURL [aurl] [http://xkcd.com/149/] [] [我更喜欢热狗。]
      \来自 [aurl]
    \停止文本
  \停止缓冲区

  \savebuffer [内部]
  \executesystemcommand {context --purgeall \jobname-internal.tmp}

  \externalfigure [\jobname-internal] [scale=500, interaction=yes]

\停止文本

解释:

  • 缓冲区包含带有超链接的 PDF 文件的代码。
  • 写入\savebuffer缓冲区的内容内部的在外部文件中。
  • \executesystemcommand在此文件上运行上下文以创建包含链接的 PDF 文件。
  • 最终,该externalfigure命令将刚刚创建的 PDF 包含在当前文档中。

使用 luatex beta-0.70.1-2011051923 和上下文 2011.11.04 14:15 进行测试

答案4

如果可以将嵌入的 .pdf 与聚合的 .pdf 一起提供,则有一种方法可以间接使原始链接可访问:嵌入的 .pdf 可以使用 本身成为超链接\includepdf[linktodoc=true,...。这样,单击即可打开嵌入的文档,并且其超链接可访问。

这里是pdfpages 手册,其中linktodoc描述了标志。

相关内容