我正在创建一个pdf文档(通过ColdFusion),并在浏览器中呈现pdf。 pdf表单已经创建,我正在预填充字段。
所以我正在做的是从pdf中转出变量以用作cfpdfformparam中的名称。 (获取变量)那么我正在做的是创建所有者电子邮件是pdf中变量的名称,然后是我从另一个表单中分配会话变量的值。因此他们输入的内容以他们需要填写的形式预先填写。所以真正的名字决定了pdf上的位置,而值是在另一个表格上输入的会话变量。
我遇到的问题是已经创建的变量,其中一些变量在变量中有structs
因此我不知道如何在(名称部分)中调用它们以便预填充填充信息。
例如,当它们在变量中包含结构时,如何为FEID / DL / DMVacct和FL reg预填充信息?:
像这样?:<cfpdfformparam
name="FEID/DL/DMVacct##"
value="#session.checkout.info.driverlicense_1#">
<cfpdfform action="read" source="82040y.pdf" result="data" />
<cfdump var="#data#" />
我预填充pdf表单字段(通过ColdFusion会话变量),然后使用以下标记呈现pdf:
<cfpdfform source="82040.pdf" action="populate">
<cfpdfformparam name="org" value="">
</cfpdfform>
非常感谢任何帮助!
答案 0 :(得分:7)
您可以访问嵌入在结构中的变量,如下所示:
<!--- using dot notation --->
<cfif StructKeyExists(myStruct, "myKey")>
<cfoutput> #mystruct.myKey#</cfoutput><br>
</cfif>
<!--- or using access notation --->
<cfif StructKeyExists(myStruct, LastName)>
<cfoutput>#LastName#: #mystruct[LastName]#</cfoutput><br>
</cfif>
您可以使用IsDefined
查看值是否存在:
IsDefined("structure_name.key")>
但是,如果密钥是动态的,或者包含特殊字符,则必须使用StructKeyExists
函数。
注意:您必须注意ColdFusion中的变量名称。如果用作变量名,则分配给结构值的某些名称将被视为无效。因此,如果您的结构名称包含无效字符,则需要通过访问符号来访问它们以便检索它们:
<!--- use access-notation for value names with special chars --->
data["FEID/DL/DMVacct"]["#"]
否则,如果尝试使用点符号,则会出现运行时错误:
<!--- Invalid markup! Don't do this! --->
#data.FEID/DL/DMVacct.##
以下是一些如何访问数据的示例:
<!--- Output the value --->
<cfoutput> #data["FEID/DL/DMVacct"]["#"]#</cfoutput><br>
<!--- Storing the value in a variable named 'myVar' --->
<cfset myVar = #data["FEID/DL/DMVacct"]["#"]# />
<cfoutput>#myVar#</cfoutput>
如果你的结构名称遵循ColdFusion的variable naming rules,那么你也可以用点符号访问你的数据,注意我将值名FEID/DL/DMVacct
和#
更改为有效的变量名:{ {1}}和FEID_DL_DMVacct
:
num
希望这有帮助!
答案 1 :(得分:6)
structName['FEID/DL/DMVacct']['##'] = variable
您需要使用双#
来转义它们并生成一个单数#