The document discussed using ColdFusion to dynamically generate financial letters. It presented a use case of a large organization needing to generate letters. It then demonstrated three approaches in ColdFusion: using CFPDFFORM with LiveCycle forms, CFDocument, and CFPDFFORM with Acrobat forms. Other CFPDF features discussed included merging, flattening, and archiving PDFs. It also covered printing PDFs using CFPrint or cloud printing services. Finally, it discussed using cloud-based document and signature workflows like Adobe Sign.
4. Use Case – Building Requirements
Legal Team
▪ Designs forms with corporate legal
guidelines, and local, state and federal
regulations
▪ Each change requires legal approval
▪ Your process will be unique depending on
type of document
Business Analyst
• Develops text state regulation rules,
conditions for document
• Produces mock up of Letter using Word with
Color coded comments in the margin
5. Use Case - Word Doc Requirements
▪ Final Requirements were done using Word
▪ Allowed Legal to proof Word document
▪ Provided QA with Acceptance Criteria
7. Requirements & Template Generation
Backend
Use Case – Large Organization Letter Generation
Business Analyst Legal
Word Doc
Using Colors and pseudo code and
Comments to show all the variables and
conditional text
LiveCycle Forms Designer
LiveCycle
PDF Template
LiveCycle Forms Process
REST API
DB Java App
CRM
Scheduled
Task
Letter
Printed
and
Mailed
XML
Archived
PDFA
REST API
8. Types of Forms Documents Letters
▪ Invoices and Quotes
▪ Account Statements
▪ Mortgage Documents
▪ Contracts
▪ Medical Documents
▪ Legal Documents
▪ Human Resources
▪ Insurance
▪ Financial Reports
▪ Confidential Reports
Regulations
▪ Federal Regulations
▪ State and Local Regulations
▪ Corporate Regulations
10. Using LiveCycle Forms with ColdFusion
▪ Key feature is that it supports expanding tables
<cfpdfform action="populate"
source="PATH AND FILE TO YOUR TEMPLATE PDF#"
XMLdata=“PATH AND FILE TO THE XML WITH VALUES"
destination=“PATH FILE NAME WHERE TO SAVE NEW
PDF" overwrite="true" />
11. Requirements and Analysis
Backend
Use Case– Large Organization PDF Generation with ColdFusion
Business Analyst Legal
Word Doc
Using Colors and pseudo code and
Comments to show all the variables and
conditional text
AEM Forms Designer
LiveCycle
Dynamic
PDF
ColdFusion
REST APIDB ColdFusion
CRM
Scheduled
Task
Letter
Printed
and
Mailed
XML
Archived
PDFA
REST API
12. CFPDFForm with LiveCycle Forms
▪ Considerations
▪ Flattening and Archiving may require Adobe Output to do the conversion
▪ https://helpx.adobe.com/aem-forms/6/output-service.html
▪ Need to acquire Forms Designer
▪ Need Forms Designer Expertise
▪ Demo
14. Requirements and Analysis
Backend
Process Flow – Using ColdFusion CFDocument
Business Analyst Legal
Word Doc
Using Colors and pseudo code and
Comments to show all the variables
and conditional text DB
ColdFusion
CRM
Scheduled
Task
Letter
Printed
and
Mailed
Archived
PDFA
REST API
15. CFDOCUMENT
▪ CFDocument
▪ CFDocumentItem
▪Header
▪Footer
▪Page Break
▪ CFDocumentSection
▪Can contain it’s own
header and footer
▪Page Number
• The most powerful solution
• Easily script content base
on incoming variables
<CFDocument>
CFML and HTML
</CFDocument>
16. Using CFDocument
▪ Supports 70+ CSS tags
▪ CFQuery retrieves fields customer
data
▪ Easy to script content:
▪ Corporate, and Government
Regulations
▪ No need for embedding JavaScript
inside PDF to use File:///
Considerations
▪ You are not starting from a PDF
template
▪ Placement of content will rely
on the HTML and CSS
▪ Links to images and CSS files
might need to use File:///
Good Article
▪ http://dnando.github.io/blog/2015/07/01/ge
nerating-accurate-pdfs-using-cfdocument/
17. CFDocument and Attributes
<cfdocument
format = "PDF"
authPassword = "authentication password"
authUser = "authentication user name"
backgroundVisible = "yes|no"
bookmark = "yes|no"
encryption = "128-bit|40-bit|none"
filename = "filename"
fontEmbed = "yes|no"
formfields = "yes|no"
formsType = "FDF|PDF|HTML|XML"
localUrl = "yes|no"
marginBottom = "number"
marginLeft = "number"
marginRight = "number"
marginTop = "number"
mimeType =
"text/plain|application/xml|image/jpeg|image/png|image/b
mp|image/gif"
name = "output variable name“openpassword = "password to
open protected documents“
orientation = "portrait|landscape“
overwrite = "yes|no"
ownerPassword = "password"
pageHeight = "page height in inches"
pageType = "page type"
pageWidth = "page width in inches"
pdfa = "yes|no"
permissions = "permission list"
permissionspassword = "password to access
restricted permissions"
proxyHost = "IP address or server name for proxy
host"
proxyPassword = "password for the proxy host"
proxyPort = "port of the proxy host"
proxyUser = "user name for the proxy host"
saveAsName = "PDF filename"
scale = "percentage less than 100"
src = "URL|pathname relative to web root"
srcfile = "absolute pathname to a file"
tagged = "yes|no"
unit = "in|cm"
userAgent = "HTTP user agent identifier"
userPassword = "password">
HTML and CFML code
</cfdocument>
21. Requirements and Analysis
Backend
Process Flow – Large Organization using ColdFusion CFPDFForm
Business Analyst Legal
Word Doc
Using Colors and pseudo code and
Comments to show all the variables
and conditional text
DB
ColdFusion
CRM
Scheduled
Task
Letter
Printed
and
Mailed
Archived
PDFA
REST API
Acrobat
PDF(s) with Form
23. Code to Populate
<cfpdfform action="read" source= “template.pdf” result="formData" />
<cfpdfform action="populate" source=“source1.pdf"
destination=“populated.pdf" overwrite="yes">
<!--- Loop through all the Form Fields and populate them with demo --->
<cfloop collection="#formData#" item="item">
<cfpdfformparam name="#item#" value=“demo" />
</cfloop>
</cfpdfform>
24. CFPDFForm – Flatten, Archive with CFPDF
Remove interactivity from PDF
<cfpdf action="write” flatten="yes“
source=“populated.pdf" destination="flattened.pdf" overwrite="true" />
Save PDF as a legal archived format
<cfpdf action="archive“ standard=“3b"
source="flattened.pdf" destination=“archived.pdf" overwrite="true“ />
Lastly, Store result archived PDF in read-only location
27. CFPDF Features
▪ New with CF2016
▪ Sanitize
▪ Export and import comments
▪ Archive
▪ addAttachments
▪ addStamp
• Merge several PDF documents into one PDF document.
• Delete pages from a PDF document.
• Merge pages from one or more PDF documents and generate a new
PDF document.
• Linearize PDF documents for faster web display.
• Remove interactivity from forms created in Acrobat to generate flat
PDF documents.
• Encrypt and add password protection to PDF documents.
• Generate thumbnail images from PDF documents or pages.
• Add or remove watermarks from PDF documents or pages.
• Retrieve information associated with a PDF document, such as the
software used to generate the file or the author, and set information for a
PDF document, such as the title, author and keywords.
• Create PDF portfolios
• Add and remove header/footer from PDF documents
• Optimize PDF documents
28. CFPDF Merging
▪ Great for adding standard pieces of content to any document
▪ Conditional Corporate and Government Regulations
▪ Disclaimers
<cfpdf action="merge"
destination="/samtemp/pdfs/new.pdf"
overwrite="yes">
<cfpdfparam source="cfdoc">
<cfpdfparam source="/samtemp/pdfs/pdf2.pdf">
<cfpdfparam source="/samtemp/pdfs/pdf1.pdf">
</cfpdf>
29. CFPDF - Advanced Mergin with DDX
▪ ColdFusion contains the product
called LiveCycle Assembler
▪ LiveCycle Assembler is a server-
based application that processes
DDX
▪ DDX is a declarative markup
language used to define PDF
output files.
▪ Primary feature is to merge PDFs
or XDPs
The CFPDF action processddx lets you
process DDX instructions.
<DDX xmlns="http://ns.adobe.com/DDX/1.0/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-
instance"
xsi:schemaLocation="http://ns.adobe.com/DDX/1.0/
coldfusion_ddx.xsd">
<PDF result="Out1">
<PDF source="Doc1"/>
<PDF source="Doc2"/>
</PDF>
</DDX>
31. PDF A is the legal Archive Format
▪ PDF is an open standard
▪ Currently there are 3 formats with
PDFA - A fourth is expected this
later in 2019.
▪ CFPDF allows you to save your
PDF in all 3 of the current formats
▪ 1b, 2b or 3b
Learn more: https://en.wikipedia.org/wiki/PDF/A
<cfpdf
action="archive"
source=“archiveme.pdf"
destination = “archived_with_3b.pdf"
standard = "3b"/>
Storing Archived PDFs
Internal CRM Integration
Cloud Based CRM
33. CFPrint
▪ Allows you to send any PDF to any accessible Printer
▪ Account running the ColdFusion server must
have PRINTER_ACCESS_USE access rights for each printer
▪ Setup Batch Printing
cfset aset=StructNew()>
<cfset aset["paper"] = "letter">
<cfset aset["sides"] = "duplex">
<cfset aset["copies"] = "5">
<cfset aset["printer"] = "s1001prn02NTN-2W-HP_BW02">
<cfprint type="pdf" source="myfile.pdf“
attributeStruct="#aset#">
34. Printer Cloud Integration
▪ https://www.mailform.io/
▪ http://www.docsmit.com
▪ https://www.pc2paper.co.uk/
▪ International providers can save time
and money as well.
▪ Security Compliance
▪ CRM Integration
36. Document Signature Workflow
▪ Not Everything needs to be printed
▪ Cost Effective Online Delivery
▪ Many Cloud Signature services exist
▪ Adobe Sign has a complete API that
could be used as well
▪ DocuSign
37. Using Cloud based Signature Solutions
▪ The Adobe Sign APIs can be used to:
▪ Create and manage generated PDFs
▪ Retrieve signed documents
▪ Embed a signing UI in your app
▪ Send reminders
▪ Retrieve audit trails
▪ Archive signed documents
38. Summary – What we covered today
▪ Actual Bank Use Case -LiveCycle Form Designer and LiveCycle Server
▪ Three ColdFusion Scenarios
▪ CFPDFFORM with LiveCycle Form Designer
▪ CFDocument
▪ CFPDFFORM with Acrobat Forms
CFPDF for Merging, Flattening and Archiving
CFPrint for Printing
Cloud Based Services for Printing
Cloud Base DocumentSignature Workflows (ie Adobe Sign)