Blog

Luis Majano

March 14, 2016

Spread the word


Share your thoughts

 

We are extremely excited to bring to the masses our PDF extension for Lucee CFML server. This has been in the works since the Railo days and we have finally spiced it up to release it publicly. So what exactly does the Ortus PDF extension do? I am glad you asked. Let's check this extension out.

Overview

The Ortus PDF Lucee Extension adds to any Lucee engine the missing PDF capabilities you were longing for and enhancing some PDF capabilities as well. The extension contains several new CFML built-in tags and functions (coming soon) that will help you manipulate and work with PDF documents. Our extension is completely documented and professionaly supported via our Ortus Support services.

Implemented Tags:

  • cfpdfform
  • cfpdfformparam

 

The Ortus PDF Lucee Extension will allow you to do PDF manipulation like prefilling PDF form fields from a database, native CFML structures, JSON, FDF and even XML data. It can also process PDF form data by extracting to native CFML structures, XML, JSON, FDF or files. It can also flatten PDF files to lock in PDF form changes and much more. Please see our capabilities section for much more detail about our features.

 

 

Populate Using Sub Tags



	
	
	
	
	
	

Populate Using Native CFML Structs


data = {
	"full_name" = "Ortus Rocks",
	"exam_date" = "#dateFormat( now(), "mmmm dd, yyyy")# #timeFormat( now(), "medium")#",
	"strategy_overview" = "Drink a lot of water!",
	"strategy_tips"	= "Eat a lot of cheese!"
};
pdfform 
	action="populate" 
	source="#datapath#/report.pdf" 
	overwrite="true"
	overwriteData="true"
	structData=data
	flatten="true";

Populate Using JSON


jsonData = '{
	"full_name"	: "Ortus Rocks",
	"exam_date"	: "#dateFormat( now(), "mmmm dd, yyyy")# #timeFormat( now(), "medium")#",
	"strategy_overview" : "Drink a lot of water!",
	"strategy_tips" : "Eat a lot of cheese!"
}';
pdfform 
	action="populate" 
	source="#datapath#/report.pdf" 
	overwrite="true"
	overwriteData="true"
	jsonData="#jsonData#"
	flatten="true";

Reading a PDF Form


pdfform 
	action="read"
	source="#dataPath#/report.pdf"
	result="formData"
	jsonData="jsonData";
// Native Struct
writeDump( formData );
// JSON Data
writeDump( jsonData );

 

This is just a taste of the capabilities you can do with our extension. We have tons of features coming in future releases and we would love to have yoru input as well.

 

Add Your Comment

Recent Entries

Speaker Featuring - Round 1

Speaker Featuring - Round 1

Every conference is more than the talks we see on stage it’s also the story of the people who make it possible.

With the first round of Into the Box 2026 sessions and workshops now live, we’re excited to introduce some of the speakers who will be joining us this year. These community members, practitioners, and Ortus team experts bring decades of real-world experience across CFML, BoxLang, JVM modernization, testing, AI, and cloud-native development.

Victor Campos
Victor Campos
January 26, 2026
First Round of the Into the Box 2026 Agenda Is Live

First Round of the Into the Box 2026 Agenda Is Live

Into the Box 2026 marks an important moment for the CFML and BoxLang community not just because of what’s on the agenda, but because of what it represents: 20 years of Ortus Solutions helping teams move forward, modernize, and build with confidence.

Victor Campos
Victor Campos
January 21, 2026
BoxLang AI v2: Enterprise AI Development Without the Complexity

BoxLang AI v2: Enterprise AI Development Without the Complexity

One Year. 100+ Features. Unlimited Possibilities.

Just one year ago, in March 2024, we launched BoxLang AI 1.0. Today, we're thrilled to announce BoxLang AI v2—a massive leap forward that positions BoxLang as the most powerful and versatile AI framework on the JVM.

Luis Majano
Luis Majano
January 19, 2026