2012-05-24 11 views
1

У меня есть шаблон PDF, в котором есть раздел, который будет выложен как таблица. Данные будут получены из запроса. Таким образом, эта таблица будет динамической, количество неизвестных строк.ColdFusion: как заполнить раздел жизненного цикла 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> 
+1

Я не использую LiveCycle, поэтому, надеюсь, кто-то другой может предоставить более конкретные инструкции. Однако из того, что я прочитал, вы должны создать динамическую форму в LiveCycle. Затем выполните цикл запроса в CF-коде для генерации значений cfpdfformparam [как описано здесь] (http://forums.adobe.com/thread/711389?start=0&tstart=0). – Leigh

+0

Спасибо, Ли, я посмотрел ссылку. проблема заключается в индексировании имени поля. шаблон pdf знает для каждой строки, имя поля будет отпечатано с помощью «_ # id #» – Larry

+0

Я не уверен. У меня сложилось впечатление, что это зависит от того, как структурирован шаблон (и может также включать атрибут 'index'). Но это основано на * очень * небольшом знании LiveCycle ;-) Для конкретной части LiveCycle вы, вероятно, получите более своевременные и точные ответы на форумах adobe. – Leigh

ответ

0

Вы просто хотите создать 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> 
+0

Нет, они пытаются заполнить существующую форму pdf *, т.е. заполнить поля значениями. Это другой шар воск, чем создание PDF с нуля. – Leigh

+0

спасибо за помощь. – Larry

1

Я нашел решение. Именно в этом форуме:

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

В нижней нити было это:

2 ключевых точками 1. В сре вам необходимо установить overwritedata =»да» в cfpdfform 2. Ф должен быть динамическим 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> 
+0

Рад, что вы это решили! Похоже, основное различие заключается в использовании индекса с подформой. Я уберу это для дальнейшего использования. Так что спасибо за публикацию. – Leigh

+0

также очень важно, при создании pdf он должен быть создан как «динамическая» форма. По умолчанию он создается как «статический». Это было не очевидно. – Larry