当我使用<cfsavecontent>
标签时,它的输出似乎是由服务器提供的(没有输出变量),这对我来说有点挫败了{{1}的目的}。
如果这很重要:我的应用程序使用ColdSpring,ModelGlue和Transfer ORM。
这是函数中的示例代码:
<cfsavecontent>
模板:
<cfsavecontent variable="testvar">
<cfinclude template="test.cfm" />
</cfsavecontent>
<cfreturn testvar>
我的浏览器(谷歌浏览器)正在解析PDF内容,而视图甚至没有被加载。我怎样才能最好地防止这种情况发生?
只是为了澄清:我还没有在此代码中输出<cfdocument format="PDF" pagetype="A4" orientation="portrait" unit="cm">
<cfoutput>
<!--- PDF content here --->
</cfoutput>
</cfdocument>
变量,但它似乎无论如何都会在浏览器中加载模板。
答案 0 :(得分:8)
要实现您尝试做的事情,您是否应该只使用<cfdocument>
的name
属性将PDF数据放入变量中,而不是尝试{{1它呢?
披露:除了概念验证代码和测试之外,我从未使用过<cfsavecontent>
,但这是我从文档中推断的内容。
答案 1 :(得分:2)
由于我还需要合并多个PDF文档,因此我最终执行了以下操作。非常感谢Adam Cameron为我的初始问题提供解决方案。
<cfdocument>
属性的name
标记将PDF保存在变量中(感谢Adam Cameron)<cfpdf>
的{{1}}动作并使用cfloop将PDF文档合并在一起,在其中循环遍历数组。merge
并使用<cfcontent>
这让我到了我的位置。
答案 2 :(得分:1)
cfinclude将处理test.cfm页面,您配置cfdocument的方式将导致浏览器中“打开”pdf文档。 您可以通过在光盘上保存文件来阻止打开此文件:
<cfdocument format="PDF" pagetype="A4" orientation="portrait" unit="cm" filename ="test.pdf" overwrite ="yes">
但这不会阻止在cfcontent标记中执行cfinclude,它只会阻止在浏览器中打开。
您可以将cfinclude视为对服务器的请求,它将始终执行。
解决方案是在您实际想要生成pdf的那一刻,在test.cfm文件上调用包含cfdocument的请求。
示例:在客户端上使用javascript调用报告服务,该服务将生成并使用pdf报告弹出屏幕。
希望这有帮助。