2

我正在一个coldfusion网站上工作并试图修复一个错误。到目前为止,我已经尝试了很多东西,所以这里使用 StackOverflow。

有问题的网站需要能够通过电子邮件发送 pdf,以及将 pdf 打印给用户以在浏览器中预览(在另一个窗口中)的另一个功能。我发现无论我做什么,这些功能都不能同时工作。

以下是发送电子邮件的代码(coldfusion 和 JavaScript):

电子邮件函数和变量 - 无法以代码格式正确粘贴

该文档是使用以下 cfm 文件构建的:

cfdocument 文件头 - 也不会正确粘贴

该代码为打印和电子邮件功能调用相同的函数 (orderApprovalPdf.cfm)。这是调用打印的javascript:

form = document[this._PARENT.NAME+"MANAGEFORM"];
sel = ColdFusion.getElementValue(this._PARENT.NAME+"FORMSELECT");

switch(sel){

     case 'APPROVAL' :
         window.open('Pdf/orderApprovalPdf.cfm?PRODUCTORDERID=' + form.productOrderID.value);   
     break;
      case 'SHIPDATECONFIRMATION' :
        window.open('Pdf/vikingEstShipDatePdf.cfm?PRODUCTORDERID=' + form.productOrderID.value);    
     break;
     case 'BOL' :
        window.open('Pdf/billOfLadingPdf.cfm?PRODUCTORDERID=' + form.productOrderID.value); 
     break;
      case 'INVOICE' :
        window.open('Pdf/invoicePdf.cfm?INVOICEID=' + form.invoiceID.value);    
     break;
      case 'INVOICECANADA' :
        window.open('Pdf/invoicePdfCanada.cfm?INVOICEID=' + form.invoiceID.value);  
     break;

}

我尝试了以下所有方法:

用于打印功能的第二个 .cfm 文件来自printForm– 不同的 cfm 名称、不同的 cfm 文件目录、不同的临时文件路径和不同的临时文件名 – 除非以下粗体字与原始 pdf 函数名称匹配,否则电子邮件将中断尽管在printForm功能中而不是emailForm功能中并且没有出现在其他地方

 case 'APPROVAL' :
 window.open('Pdf/orderApprovalPdf.cfm?PRODUCTORDERID=' + form.productOrderID.value);

属性文件名的替代方案cfdocument:saveasname、name(manageOrder.cfc作为变量调用,例如#myPdf#,当它是名称变量时,cfdocument无论我如何调用它,myPdf 变量都不存在)

   <cfdocument name=”myPdf” >
   <cfmailparam file = “#GetTempDirectory()#Approval_#getApprovalInfoProcResult.ORDERNUMBER#.pdf" type=”application/pdf” content=”#myPdf” />
   <cfcontent variable="#myPdf#" type="application/pdf" reset="Yes">

尝试添加cfcontentcfheader标签以保存文件(也为了规避文件名作为属性) - 没有任何区别,当电子邮件时间到来时仍然找不到文件:

 <cfheader name="Content-Disposition" value="attachment; filename=#GetTempDirectory()#Approval_#getApprovalInfoProcResult.ORDERNUMBER#.pdf" />

在标签关闭后将电子邮件功能从文件移至manageOrder.cfc文件——但程序从未命中此代码orderApprovalPdf(cfm)<cfdocument>

有任何想法吗?也许可以替代cfdocument? 我尝试了两个单独的 cfm 文件,看起来该window.open功能不允许这种解决方法。

4

0 回答 0