ColdFusion PDF"打开"或"保存文件"提示

时间:2015-01-09 20:53:21

标签: coldfusion

如何创建弹出窗口,允许用户“打开”或保存文件,就像处理coldfusion pdf一样?

enter image description here

我试图弄清楚当这个表格实际上不是我的时候如何创建它,我只是使用并预先填充已经存在的表单。

<cfpdfform source="82040.pdf" action="populate">
   <cfpdfformparam name="cust ##" value=""> <!---Section1 Customer Number--->
</cfpdfform>

我能够通过这样的方式创建这个弹出窗口:

<cfsetting enablecfoutputonly="true">
<cfcontent type="application/pdf">
<cfheader name="Content-Disposition" value="attachment;filename=test.pdf">
<cfdocument format="PDF" localurl="yes" 
    marginTop=".25" marginLeft=".25" marginRight=".25" marginBottom=".25" 
    pageType="custom" pageWidth="8.5" pageHeight="10.2">
<cfoutput><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>PDF Export Example</title>
</head>
<body>
</body>
</html>
</cfoutput>
</cfdocument>

但我不确定如何将这两者结合起来。非常感谢任何帮助!

按要求我尝试过:

<cfset tempFilePath = "c:/path/to/someUniqueFileName.pdf">
<cfpdfform source="82040.pdf" action="populate" destination="#tempFilePath#">
    <cfpdfformparam name="org" value="Yes"> <!---Above Section1 Original --->  <!---On--->
</cfpdfform>
<cfheader name="Content-Disposition" value="attachment;filename=Testme.pdf">
<cfcontent type="application/pdf" file="#tempFilePath#" deleteFile="false">

1 个答案:

答案 0 :(得分:1)

默认情况下,cfpdfform在浏览器中呈现结果,即&#34; inline&#34;。要将其作为附件返回,请将内容保存到文件或变量中。然后使用cfheader/cfcontent将其作为附件返回。

文件:

使用&#34;目的地&#34;属性将其保存到文件中。为避免与其他线程发生冲突,请务必使用唯一文件名。要在完成后自动删除临时文件,请设置deleteFile =&#34; true&#34;

<cfset tempFilePath = "c:/path/to/someUniqueFileName.pdf">
<cfpdfform source="82040.pdf" action="populate" destination="#tempFilePath#">
  ...
<cfheader name="Content-Disposition" value="attachment;filename=test.pdf">
<cfcontent type="application/pdf" file="#tempFilePath#" deleteFile="false">

<强>可变

使用&#34;名称&#34;用于将内容保存到变量的属性。虽然&#34;名称&#34;未在文档中列出,this bug report表示这只是文档错误。

<cfpdfform source="82040.pdf" action="populate" name="pdfContent">
... etcetera ...
<cfheader name="Content-Disposition" value="attachment;filename=test.pdf">
<cfcontent type="application/pdf" variable="#toBinary(pdfContent)#">