【问题标题】:ColdFusion: how to populate livecycle pdf section dynamically using query dataColdFusion:如何使用查询数据动态填充 livecycle pdf 部分
【发布时间】:2012-05-30 05:01:58
【问题描述】:

我有一个 PDF 模板,其中有一个部分将像表格一样布局。数据将来自查询。所以这个表是动态的,行数未知。

如何使用 ColdFusion 完成此任务?它是使用 LiveCycle 创建模板和创建此部分的组合,因此它是动态的,然后使用 CFPDF 填充它。

现在我正在使用填充静态字段。

<cfpdfform source="Template.pdf"
   destination="Template2.pdf" action="populate">
   <cfpdfsubform name="form1">
    <cfpdfformparam name="pdf_controlNum" value="123">
    <cfpdfformparam name="pdf_ReportDate" value="05/01/2012">
   </cfpdfsubform>
</cfpdfform>

【问题讨论】:

  • 我不使用 LiveCycle,所以希望其他人可以提供更具体的说明。但是,根据我的阅读,您必须在 LiveCycle 中创建一个动态表单。然后在 CF 代码中循环查询以生成 cfpdfformparam 值as described here
  • 谢谢 Leigh,我查看了链接。我遇到的问题是字段名称的索引。 pdf模板是否知道每一行,字段名称将后缀'_#id#'
  • 我不确定。我的印象取决于模板的结构(也可能涉及使用index 属性)。但这是基于对 LiveCycle 的非常了解 ;-) 对于 LiveCycle 特定部分,您可能会在 adobe 论坛上获得更及时和准确的答案。
  • 我在以下链接中找到了解决方案。答案在线程的底部。 experts-exchange.com/Software/Server_Software/Web_Servers/…
  • 以上链接似乎无法正常工作。

标签: coldfusion cfpdf cfpdfform


【解决方案1】:

我找到了解决方案。在这个论坛里:

http://www.experts-exchange.com/Software/Server_Software/Web_Servers/ColdFusion/Q_26528588.html

在线程的底部是这样的:

2个关键点 1.在cf中你需要在cfpdfform中设置overwritedata=”yes” 2. pdf需要是动态pdf。

希望这对其他人有所帮助。我没有如何写博客,但如果你知道一个,请告诉我。确实很方便。

<cfpdfsubform name="details">    
  <cfpdfsubform name="Table1">
    <cfloop from="1" to="#getClientOrderDetails.recordCount#" index="i">            
      <cfpdfsubform name="Row1" index = "#i#">  
      <cfpdfformparam name="pdfDescription" value="#getClientOrderDetails.ItemDescription[i]#">
        <cfpdfformparam name="pdfItemQuantity" value="#getClientOrderDetails.ItemQuantity[i]#">
        <cfpdfformparam name="pdfItemUnitPrice" value="#getClientOrderDetails.ItemUnitPrice[i]#"> 
      </cfpdfsubform>
    </cfloop> 
   </cfpdfsubform>
 </cfpdfsubform>

【讨论】:

  • 很高兴你解决了它!看起来主要区别是将index 与子表单一起使用。我会把它藏起来以备将来参考。所以感谢您发布它。
  • 也很重要,创建 pdf 时需要将其创建为“动态”表单。默认情况下,它被创建为“静态”。这并不明显。
【解决方案2】:

您只是想创建一个 PDF 文件吗?如果是这样,您还必须在 cfdocument 之后调用样式表

<cfdocument 
format="pdf" 
filename = "pdf_file_path\#pdf_controlNum#_#pdf_ReportDate#.pdf"
overwrite = "yes"
marginBottom = ".2"
marginLeft = ".4"
marginRight = ".4"
marginTop = ".2">

<style type="text/css">@import "pdf.css";</style>

QUERY RESULTS TABLES AND CODING HERE ETC

</cfdocument>

【讨论】:

  • 不,他们正在尝试填充现有的 pdf form,即用值填写字段。与从头开始创建 pdf 相比,这是一个不同的蜡球。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
  • 2019-03-09
  • 2018-02-01
  • 1970-01-01
相关资源
最近更新 更多