传统的 PDF 是快照。它显示的数据在生成 PDF 时被冻结。每次打开文档时,包含实时数据的交互式 PDF 仪表板都会刷新其内容,从 Web 服务、数据库或链接数据源中提取当前数据。读者看到的是当前数据,而不是上周的出口数据。此功能将 PDF 从静态报告转变为实时报告工具。
在 PDF 中嵌入实时数据源需要以下三种方法之一:使用更新的数据按计划重新生成 PDF、嵌入在打开 PDF 时调用 Web 服务的 JavaScript,或者将 PDF 元素链接到 PDF 阅读器自动刷新的外部数据源。每种方法都有不同的基础设施要求和不同级别的 PDF 阅读器支持。
WukongPDF 的Web 到 PDF 工具可根据需要将实时数据视图转换为 PDF。对于必须始终显示当前数据的仪表板,计划的重新生成方法在所有 PDF 阅读器中是最可靠的。

方法 1:使用当前数据计划 PDF 重新生成
确保 PDF 仪表板始终显示当前数据的最可靠方法是按计划重新生成数据。脚本从源数据库或 API 中提取数据、填充报告模板并导出新的 PDF。生成的 PDF 包含当前数据作为静态内容。阅读器不需要支持 JavaScript 或外部数据连接。 PDF 在每个阅读器中看起来都是一样的,因为数据是在生成时烘焙到文件中的。
Python 等工具以及 matplotlib 和 reportlab 库可以通过编程方式生成数据驱动的 PDF 仪表板。服务器上的 cron 作业每小时或每天运行该脚本,提取新数据并覆盖以前的 PDF。 PDF 的 URL 保持不变,但每次脚本运行时其内容都会更新。此方法适用于任何 PDF 阅读器和任何可以通过编程方式查询的数据源。限制在于数据仅与最后一个再生周期相同。对于每小时或每天更新就足够的仪表板,计划重新生成可提供最佳兼容性。
尝试编辑 PDF
无需安装。直接在您的浏览器中工作。
方法 2:文档打开上的 JavaScript API 调用
PDF 文件可以包含打开文档时执行的 JavaScript。该脚本可以调用外部 Web 服务、接收响应中的 JSON 数据,并使用返回值填充表单字段或更新文本元素。当读者打开 PDF 并单击安全警告以允许网络连接时,仪表板会填充来自 Web 服务的实时数据。
此方法需要一个以 JSON 格式返回仪表板数据的服务器端点。 PDF 包含使用 Acrobat JavaScript API 中的 Net.HTTP.request 方法调用此端点的 JavaScript。该脚本在 DocOpen 事件上运行,获取数据并更新字段值。该方法适用于启用 JavaScript 的 Adobe Acrobat Reader。它不适用于基于浏览器的 PDF 查看器、大多数移动 PDF 阅读器或禁用 JavaScript 的 Acrobat Reader。有限的阅读器支持使得这种方法适合分发给已知的、支持 JavaScript 的阅读器上的用户的内部仪表板。
方法 3:通过自动刷新链接 Excel 数据
Microsoft Excel 可以通过链接数据连接将图表和表格导出为 PDF。当 Excel 文件连接到外部数据源(例如 SQL 数据库、Web API 或 Power Query 数据源)时,Excel 工作簿中的图表和数据透视表会在刷新数据连接时更新。将更新的工作簿导出为 PDF 会嵌入最新数据。
实际上,PDF 和实时数据之间的链接是间接的。 Excel 文件连接到数据源,按计划或打开时刷新,并且宏或计划任务导出更新的 PDF。 PDF 本身包含来自最近 Excel 刷新的静态数据。此方法使用 Excel 中内置的数据连接性,无需在 PDF 中使用 JavaScript。
| 数据源 | 刷新方法 | 复杂性 |
|---|---|---|
| 服务器端脚本+PDF再生 | 使用更新的数据按计划重新生成整个 PDF | 中等,需要脚本和调度 |
| JavaScript + 嵌入式Web服务调用 | PDF 表单在打开时调用 API,用响应填充字段 | 中等,需要服务器端点和 JS 知识 |
| 具有自动更新功能的链接电子表格 | PDF 图表链接到外部数据源,打开时更新 | 低,在 Excel 到 PDF 工作流程中受支持 |
为您的受众选择正确的方法
预定的重新生成方法适用于任何受众,因为它会生成每个读者都可以打开的标准静态 PDF。 JavaScript 方法在打开时提供真实的实时数据,但仅适用于使用启用了 JavaScript 的 Acrobat Reader 的读者。 Excel 链接方法提供半实时数据,并以 Excel 作为数据源和 PDF 输出之间的桥梁。
对于向具有未知 PDF 阅读器配置的受众进行外部分发,计划重新生成是安全的选择。对于同事在托管设备上查看的内部仪表板,JavaScript 或 Excel 链接方法可以提供更频繁的数据更新。该决定平衡了数据新鲜度和读者兼容性。向每个收件人显示前一小时数据的仪表板通常比向拥有合适 PDF 阅读器的一小部分收件人显示实时数据的仪表板更有用。
PDF 仪表板中的实时数据模糊了静态文档和动态报告界面之间的界限。 PDF 格式最初是为静态内容交换而设计的,当与正确的数据传输机制结合使用时,可以用作轻量级仪表板容器。预定的重新生成方法是为最广泛的受众提供实时 PDF 仪表板的最实用途径。
保护 PDF 仪表板中的实时数据连接
在大多数情况下,发出网络请求以获取实时数据的 PDF 会引入静态 PDF 所没有的安全考虑。网络请求可能会将阅读器的 IP 地址暴露给数据服务器,并且如果服务器受到威胁,服务器的响应可能包含恶意内容。对于内部仪表板,确保数据端点使用 HTTPS 并需要身份验证。 PDF 的 JavaScript 应在发送或接收数据之前验证服务器的 SSL 证书。
对于外部分发的仪表板,计划的 PDF 重新生成是更安全的方法,因为数据在生成时嵌入受控服务器上的文件中,并且收件人的 PDF 阅读器不会发出网络请求。静态 PDF 的安全模型比进行实时 API 调用的支持 JavaScript 的 PDF 更简单且更容易审核。为内部仪表板保留实时 API 方法,其中服务器端点、PDF 阅读器配置以及它们之间的网络路径都在组织的控制之下。
将实时数据服务中的图表嵌入为图像
不要构建完整的仪表板,而是考虑嵌入由实时数据服务生成的单独图表。 Google Charts 和 QuickChart 等服务将图表呈现为来自 URL 的图像,并带有指定数据值的查询参数。 PDF 显示从 URL 加载的图像,该图像在请求时返回包含当前数据的图表。
这种方法比 JavaScript 数据获取具有更广泛的阅读器兼容性,因为支持链接图像的 PDF 阅读器可以在不执行 JavaScript 的情况下显示图表。图表服务处理数据检索和可视化。 The PDF simply displays the resulting image.对于分发给具有未知 PDF 查看器配置的读者的仪表板,链接的图表图像提供具有广泛兼容性的实时可视化。
PDF 仪表板中的实时数据将 PDF 格式的实用性扩展到静态文档交换之外。预定的再生方法提供了数据新鲜度和读取器兼容性的最佳平衡。 JavaScript 和链接图像方法为已知阅读器软件的受控环境提供了更高的及时性。为受众选择正确的数据刷新策略可确保仪表板发挥其价值,而不会出现兼容性意外。
包含实时数据的 PDF 仪表板占据静态报告和完整 Web 应用程序之间的中间地带。它以每个利益相关者都可以打开的格式提供当前数据,而无需学习新工具。预定的再生方法提供了最广泛的兼容性和最少的技术依赖性。
PDF 仪表板中的实时数据将格式从静态文档交换扩展到轻量级报告。预定的重新生成方法提供了跨 PDF 阅读器的最佳兼容性。 JavaScript 和链接图像方法为受控环境提供了更高的及时性。将刷新策略与受众相匹配可确保仪表板在不存在兼容性差距的情况下提供价值。
尝试编辑 PDF
无需安装。直接在您的浏览器中工作。
