允许某人将网页导出为PDF以便于阅读的最佳方法是什么?

时间:2014-05-01 15:06:16

标签: pdf coldfusion coldfusion-10

我有一个在线文档,其中显示了根据数据库值和应用程序值动态构建的报告。它向用户显示的报告类型基于用户具有的各种安全权限。因此,一般情况下,经理可以查看完整报告,但客户服务顾问只会看到同一报告的一部分。它做得很好。

但是,现在看到的同样的报道在线'还需要PDF版本。我已经开始构建一个新的.CFM模板,它应该处理渲染同一文档的PDF版本。它本质上是在线版本的副本,但具有基本的CSS格式和文档结构的更改方式(例如没有jquery选项卡)。它仍然有条件逻辑。

但是我现在已经到了一个阶段,我认为可能很难为同一个文档处理两个文件。我的意思是,如果在线'版本,然后PDF版本中的代码也必须更改。

这是解决此问题的唯一方法吗?还是有更好的方法可以解决从网页导出为PDF的问题?我觉得我做错了。

2 个答案:

答案 0 :(得分:4)

wkHTMLToPDF是一个非常好的选择。

我担心你的问题 - 虽然好的问题 - 会因为太主观而无法明确回答而被关闭。

至于逻辑,可能是这样的

if (requestIsForPdfVersion){
    call wkHTMLToPDF passing the *html* version of the URL to it
    use cfcontent to set the mimetype and return the file
}
business as usual for HTML

答案 1 :(得分:2)

cfdocument标签允许您动态创建PDF文件。您可以允许用户以各种方式选择其输出格式。

我最常使用的是在用户输入搜索参数的表单上包含一个选择控件。我的选择通常是HTML或Excel,但它是一般的想法。处理表单提交时,我最后显示的是显示内容。它将类似于:

<cfif form.showas is 'html'>
code for web page
<cfelse>
code for something else
<cfif>

由于您的选择是HTML或PDF,因此cfsavecontent标记可能会派上用场。

如果未从表单访问您的页面,则可以使用cfsavecontent生成包含所有输出的会话变量。然后,在您的网页上,提供一个链接或按钮或允许用户呈现为PDF的内容。你要做的就是将会话变量和cfdocument标签结合起来,鲍勃是你的叔叔。