【问题标题】:Embeding a PDF in a PDF (PDF Inception :])在 PDF 中嵌入 PDF (PDF Inception :])
【发布时间】:2017-07-31 14:27:06
【问题描述】:

我正在生成 PDF 中的人员列表。在前几页中,它以表格格式显示基本数据。但是,如果有人单击超链接,我想显示更多详细信息。最初,我认为这可以创建一个在新窗口中打开人员详细信息页面的操作。

我试图避免打印所有人员详细信息。例如,我可以为所有人生成一个人员详细信息页面,然后将摘要数据链接到详细信息。但是,如果有人去打印该作业可能需要 300 页。

有没有办法通过在 PDF 中嵌入隐藏的 PDF 来打开新的 PDF,或者有没有办法隐藏页面不被打印?

【问题讨论】:

    标签: pdf pdf-generation


    【解决方案1】:

    您可以将人员详细信息作为文件附件嵌入。 PDF 文件可以包含文件附件,并且附件可以是 PDF 文件。
    PDF 1.6 支持 GoTo Embedded 操作,当您单击链接时,您可以转到嵌入文件中的目标位置。
    PDF 查看器如何在这种情况下(在主目录和详细信息之间)实现实际导航仍有待测试。

    【讨论】:

      【解决方案2】:

      PDF 文件可以包含被称为“模板”的隐藏的、命名的页面。然后可以通过 JavaScript 隐藏或显示模板页面(例如在链接中)。

      只有正在显示的页面才会打印。

      我不确定您是如何创建 PDF 的,但是一旦您将所有页面都包含在一个 PDF 中,您就可以使用 Acrobat 中的 JavaScript 创建和隐藏模板页面,使用类似于下面的代码。 PDF 页码从零开始。

      var t = this.createTemplate({cName:"MyTemplateName", nPage:0 });
      t.hidden = true;
      

      然后,您将添加执行 JavaScript 的链接,以显示特定模板或一组这样的模板...

      this.getTemplate("MyTemplateName").hidden = false;
      

      默认情况下,从隐藏到可见的模板页面会附加到文档的末尾。

      【讨论】:

      • 你会使用什么库来实现这一点?目前,旧的 PDF 是由 Crystal 生成的。您是否推荐 HTML/JS 方法,即 PhantomJS?
      • 你会使用什么库来实现这一点?目前,旧的 PDF 是由 Crystal 生成的。您是否推荐 HTML/JS 方法,即 PhantomJS? @joelgeraci
      • 几乎任何体面的 PDF 库都可以让您创建模板页面并将 JavaScript 添加到链接,即使您必须降到 COS 级别才能做到这一点。但是您可能会对文件进行后期处理。我不知道有任何 PDF 创建软件会在生成 PDF 时创建模板页面。
      • 所以,如果我要继续使用 Crystal,我可以生成报告。该文件添加模板的后期处理? @joelgeraci
      • 完全正确...但更准确地说,您需要对文件进行后期处理以将普通页面转换为模板页面并隐藏它们。您可以在 Acrobat Pro DC 中以操作的形式执行此操作,也可以使用库工具。
      猜你喜欢
      • 2020-12-11
      • 2012-04-30
      • 2013-05-29
      • 1970-01-01
      • 2022-01-19
      • 2012-02-15
      • 2011-07-09
      • 2017-12-08
      • 2013-01-19
      相关资源
      最近更新 更多