charts - 谷歌图表和 ColdFusion PDF
问题描述
我得到了这个工作,但以最复杂的方式。如果有更好的方法,我不想将此方法复制到其他报告中。
因为 Google Image Charts 已被弃用,这本来会容易得多,所以我决定使用 JavaScript 版本的 Google Charts。为了让它工作,我在使用 jQuery/AJAX 的主报表程序中插入了一个 cfinclude,以将图表插入到报表中。没问题。简单的。显示很棒!
但是,将报告转换为 PDF 输出是另一回事。这是我所做的:
- 首先,我必须决定使用哪种 PDF 产品。我探索了许多第 3 方 PDF 产品,但最终选择了 CFHTMLTOPDF。我尝试了 CFDOCUMENT,但它根本不喜欢 Google Charts 的 PNG 输出选项。
- 另一个棘手的问题是,在页面上插入图表的 cfinclude 方法中,cfhtmltopdf 标记在图表之前呈现。啊!无论我做什么,它都不会显示。我通过粘贴“渲染”的 html 对其进行了测试,它可以工作,所以我知道这是可能的。
- 因此,作为该过程的一个步骤,我创建了包含报告数据和图表的 html。jQuery 完成了大部分繁重的工作,遍历数据并绘制图表。html 被包装在一个容器中,jQuery 抓取完成的 html 字符串并将其提交/发布到另一个程序。
- 下一个程序获取 html 并使用 cffile 标记写入 .cfm 文件。现在这个“渲染的”.cfm 页面已经存在,程序调用最终程序。该程序使用 cfinclude 标记将这个“渲染”页面包装在 cfhtmltopdf 标记中,并且 TaDa!漂亮的报告出来了!
经历这一切似乎很荒谬!我究竟做错了什么?是否有一个 ColdFusion 标记可以在 cfinclude 之前阻止 cfhtmltopdf 标记的呈现?作为客户端的 JavaScript 不是发生在 cfhtmltopdf 标记之前吗?
解决方案
推荐阅读
- android - 发现flutter中任务':app:checkDebugManifest'(类型'CheckManifest')的配置有问题
- python - 随着批次大小的增加,逻辑回归调整变得更糟
- c++ - C++ 接受带有“-”符号的命令行参数
- mongodb - MongoDB Enterprise OpsManager 在 Kubernetes 数据库规模逐渐增加不会停止
- sql-server - 如果在 sql 查询中从某个日期(上次使用的日期 > 20190101)起使用了 5 次或更多,如何带回一个字段(部件号)
- typescript - JsonSchema:如何为包含数组类型创建模式?
- css - 位置:固定 div 触摸区域在 chrome 移动设备上向下滚动时向上移动
- python - 如何将标题信息添加到 wav 文件以获得与 ffmpeg 相同的结果?
- angular - 如果刷新页面,角度路由器导航不起作用
- php - 从 3.3 迁移到 symfony 3.4 时的安全问题。我无法登录