首页 > 解决方案 > 谷歌图表和 ColdFusion PDF

问题描述

我得到了这个工作,但以最复杂的方式。如果有更好的方法,我不想将此方法复制到其他报告中。

因为 Google Image Charts 已被弃用,这本来会容易得多,所以我决定使用 JavaScript 版本的 Google Charts。为了让它工作,我在使用 jQuery/AJAX 的主报表程序中插入了一个 cfinclude,以将图表插入到报表中。没问题。简单的。显示很棒!

但是,将报告转换为 PDF 输出是另一回事。这是我所做的:

  1. 首先,我必须决定使用哪种 PDF 产品。我探索了许多第 3 方 PDF 产品,但最终选择了 CFHTMLTOPDF。我尝试了 CFDOCUMENT,但它根本不喜欢 Google Charts 的 PNG 输出选项。
  2. 另一个棘手的问题是,在页面上插入图表的 cfinclude 方法中,cfhtmltopdf 标记在图表之前呈现。啊!无论我做什么,它都不会显示。我通过粘贴“渲染”的 html 对其进行了测试,它可以工作,所以我知道这是可能的。
  3. 因此,作为该过程的一个步骤,我创建了包含报告数据和图表的 html。jQuery 完成了大部分繁重的工作,遍历数据并绘制图表。html 被包装在一个容器中,jQuery 抓取完成的 html 字符串并将其提交/发布到另一个程序。
  4. 下一个程序获取 html 并使用 cffile 标记写入 .cfm 文件。现在这个“渲染的”.cfm 页面已经存在,程序调用最终程序。该程序使用 cfinclude 标记将这个“渲染”页面包装在 cfhtmltopdf 标记中,并且 TaDa!漂亮的报告出来了!

经历这一切似乎很荒谬!我究竟做错了什么?是否有一个 ColdFusion 标记可以在 cfinclude 之前阻止 cfhtmltopdf 标记的呈现?作为客户端的 JavaScript 不是发生在 cfhtmltopdf 标记之前吗?

标签: chartscoldfusiongoogle-visualizationpdf-generation

解决方案


推荐阅读