This document discusses using ColdFusion to create and manage PDF documents and integrate with Adobe Sign for electronic document signing workflows. It covers using CFDocument to generate PDFs from HTML/CSS, CFPDFForm to populate PDF templates, and CFPDF for merging, flattening and archiving PDFs. It also provides an overview of the Adobe Sign API and how to integrate ColdFusion applications with Adobe Sign for features like document signing, reminders, and webhooks. The goal is to help organizations design workflows to develop documents in ColdFusion, send them for electronic signature in Adobe Sign, and archive signed documents.
Right Money Management App For Your Financial Goals
ColdFusion Summit 2020 ColdFusion Document Workflow with Adobe Sign
1. ColdFusion Document Approval Workflow with Adobe Sign
Mike Collins | Sr. ColdFusion Consultant | SupportObjective
2. Today’s Agenda
▪ Design and Developing Documents
▪ Creating Documents with ColdFusion
▪ CFDocument
▪ CFPDFForm with Acrobat Forms
▪ CFPDFForm with LiveCycle Forms
▪ CFPDF – Flattening, Merging, Archiving
▪ Printing – CFPrint, Cloud Based Printing
▪ Adobe Sign
▪ Overview of Features
▪ ColdFusion OAuth to Adobe Sign
▪ ColdFusion to Adobe Sign API
▪ Use Cases for Integration
3. ColdFusion and PDF Documents – Better Together
▪ PDF features remain one of the strongest feature sets within
ColdFusion
▪ ColdFusion makes it easy to work and manage PDF
documents
▪ Almost all applications have a use case to work with
documents that need to be populated, emailed, printed,
signed, archived...
5. Step One – Building Document Requirements
Legal Team
▪ Designs forms with corporate legal
guidelines
▪ Local, state and federal regulations
▪ Each change requires legal approval
▪ Your process will be unique depending
on type of document
Business Analyst
• Develops text and conditions to meet
corporate and government regulations
• Produces a mockup of Letter using Word
with Color coded comments in the margin
6. Step Two – Legal Approval of Requirements
▪ Final Requirements are built using Word using comments to show conditional text
▪ The Legal team approves the Word document
7. Step Three – Developer Builds the PDF with AEM Forms Designer Acrobat
8. Requirements & Template Generation
Backend
Use Case – Large Organization Letter Generation with LiveCycle
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
9. 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
10. 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
13. 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" />
14. 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
16. Requirements and Analysis ColdFusion
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
CFDocument
CRM
Scheduled
Tasks
Letter
Printed
and
Mailed
Archived
PDFA
17. CFDOCUMENT
▪ CFDocument
▪ CFDocumentItem
▪Header
▪Footer
▪Page Break
▪ CFDocumentSection
▪ Can contain its own header
and footer and Page Number
• The most powerful solution
• Easily script content base on
incoming variables
• Converts HTML to PDF
• Internally uses iText to perform
conversion
<CFDocument>
CFML and HTML
</CFDocument>
18. 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
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/
19. 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>
22. Requirements and Analysis
ColdFusion
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
CFPDFForm
CRM
Scheduled
Tasks
Letter
Printed
and
Mailed
Archived
PDFA
Acrobat
PDF(s) with Form
24. 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=“CF2021" />
</cfloop>
</cfpdfform>
http://127.0.0.1:8518/cfsign/forms/gen_finletter_acro.pdf
25. 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 Actions
• Merge several PDF documents, Merge pages
• Delete pages from a PDF document.
• Linearize PDF documents for faster web display
• Remove interactivity flatten PDF documents
• Encrypt and add password protection
• Generate thumbnail images
• Add or remove watermarks
• Retrieve metadata
• Create PDF portfolios
• Add and remove header/footer
• Optimize PDF documents
• Sanitize – cleans all metadata
• Export and import comments
• Archive
• addAttachments
• addStamp
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/mycontract.pdf"
overwrite="yes">
<cfpdfparam source="cfdoc">
<cfpdfparam source="/samtemp/pdfs/greetingpage.pdf">
<cfpdfparam source="/samtemp/pdfs/contract.pdf">
<cfpdfparam source="/samtemp/pdfs/signaturepage.pdf">
<cfpdfparam source="/samtemp/pdfs/disclaimers.pdf">
</cfpdf>
29. CFPDF - Advanced Merging 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
▪ CFPDF allows you to save in all the current formats -1b, 2b or 3b
▪ A fourth is expected in 2020
Learn more: https://en.wikipedia.org/wiki/PDF/A
<cfpdf
action="archive"
source=“archiveme.pdf"
destination = “archived_with_3b.pdf"
standard = "3b"/>
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
▪ Can be more cost efficient for online delivery
▪ Many Cloud Signature services exist
▪ Adobe Sign is a full featured stand-alone document
workflow product
▪ DocuSign, HelloSign, Pandadoc, SignNow,
Zapier, OneSpan, RightSignature, ApproveMe
38. Adobe Sign Overview
▪ The Adobe Sign APIs can be used to:
▪ Create and manage generated PDFs
▪ Retrieve signed documents
▪ Send reminders
▪ Retrieve audit trails
▪ Archive signed documents
39. Adobe Sign - Pricing
▪ Cloud based service to sign documents,
agreements
48. Use Case - ColdFusion and Adobe Sign Integration – Webhooks
▪ Dozens of events to hook to
and have ColdFusion
application notified
▪ Ability to chose what data is
sent with event
▪ demo
49. Design and Development CFDocument
or CFPDFForm
Process Flow –ColdFusion > Adobe Sign > Webhooks
Business Analyst Legal
Word Doc
Using Colors and pseudo code and
Comments to show all the variables and
conditional text and obtain legal approval
ColdFusion
To Be Signed Folder
CRM Document
Cloud
Scheduled
Tasks
Document Sent for
Signing in Adobe
Sign
Acrobat or AEM Form Designer
PDF Form Templates
DB
Archive Signed
Document
CRM Document
Cloud
Save signed
document
Webhooks
Populate form
and save
50. My Contracts CF Application
Process Flow –ColdFusion > Adobe Sign > Sign API
Contracts to Sign
#123
#567
#789
Adobe Sign OAuth
Webhooks
Contracts Signed
#999
#090
#127
ColdFusion using CFDocument and CFPDFForm
API Calls
Upload Form Document
Request Signatures
Check Status
51. Summary – What we covered today
▪ ColdFusion and PDF – Better Together
▪ Document Development
▪ Use Case LiveCycle Form Designer and LiveCycle Server
▪ Use Case ColdFusion Documents
▪ CFDocument
▪ CFPDFFORM with Acrobat Forms
▪ CFPDFFORM with Form Designer
CFPDF for Merging, Flattening and Archiving
CFPrint for Printing
Cloud Base DocumentSignature Workflows (ie Adobe Sign)