USING IRONPDF FOR JAVA How to Create PDF From Template in Java Darrius Serrant Updated:July 28, 2025 Download IronPDF Maven Download JAR Download Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Gemini Ask Gemini about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article One of the great features of IronPDF for Java is its ability to work with PDF templates. A PDF template is a pre-designed PDF file that contains placeholders for dynamic content. Using IronPDF, you can easily replace these placeholders with actual data to generate a customized new document in PDF format. How to Create PDF Documents from Template in Java Download IronPDF for Java to Generate PDF from Templates Create a New PDF template or load an existing one using PdfDocument.fromFile method. Write the List of Strings that contains the input for the template. Replace the specific text from a template using PdfDoc.replaceText method. Save the newly created PDF file using SaveAs method. IronPDF IronPDF is a Java library that is developed and maintained by Iron Software. It provides an easy-to-use interface that abstracts away many of the complexities of PDF generation, allowing developers to focus on the content of their PDFs rather than the details of how the files are generated. IronPDF also provides a range of features that make it easy to work with PDF templates, fillable forms, and digital signatures. This tutorial will walk you through the steps required to create a PDF file from a template using IronPDF in Java. The first step is to create a project. Step 1: Create a new Java project Here are the steps to create a new Java project using IntelliJ IDEA: Open IntelliJ IDEA and select "Create New Project" from the welcome screen or from the "File" menu. Select "Java" from the left-hand menu and choose the JDK version that you want to use for your project. Click "Next". Choose a project name and location for your project, and select the project type. You can choose from a number of different project types, such as "Java Application", "Java Library", or "JavaFX Application". Click "Next". Configure the project settings. You can specify the project SDK, project language level, and other settings. You can also choose to create a module or select an existing one. Click "Next". Choose the project template. You can choose to create a blank project, a project with a sample code, or import an existing project. Click "Finish". Create new Java Project Using IntelliJ IDEA Step 2: Add the IronPDF Library to Your Project The second step is to add the IronPDF library to your Java project using an XML file. You can do this by adding the following dependency to your project's pom.xml file: <!-- Add this dependency to use IronPDF in your Java project --> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>VERSION_NUMBER</version> <!-- Specify the version number --> </dependency> <!-- Add this dependency to use IronPDF in your Java project --> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>VERSION_NUMBER</version> <!-- Specify the version number --> </dependency> XML Step 3: Create the PDF Template Next, you need to create a PDF template that you will use to generate your PDF file. You can create your PDF template using any PDF editor. The template can include placeholders that will be replaced with dynamic data at runtime. Suppose a use case where a number of certificates are issued to 50 students. Now it is a very hectic task to create separate certificates for each user. So a template is used and just change a name using this demo program as demonstrated below. Certificate Template image instance Step 4: Create PDF Documents from Template After creating the PDF template certificate, the first step is to load it into the Java application. The IronPDF PdfDocument class is used to load the PDF template into memory. Here is an example code snippet that shows how to load a PDF template using IronPDF: // Load the PDF template into memory using IronPDF PdfDocument pdfDoc = PdfDocument.fromFile(Paths.get("CERTIFICATE.pdf")); // Load the PDF template into memory using IronPDF PdfDocument pdfDoc = PdfDocument.fromFile(Paths.get("CERTIFICATE.pdf")); JAVA Now, let's write a code example that will create 5 certificates based on the given template. import com.ironsoftware.ironpdf.PageSelection; import com.ironsoftware.ironpdf.PdfDocument; import java.io.IOException; import java.nio.file.Paths; public class CertificateGenerator { public static void main(String[] args) throws IOException { // Array of student names String[] studentNames = {"Georgia Wade", "Juliet Dave", "Olive Seth", "Miles Jorg", "Oscar Den"}; // Iterate through each student's name for (String name : studentNames) { // Load the PDF template PdfDocument pdfDoc = PdfDocument.fromFile(Paths.get("CERTIFICATE.pdf")); // Replace the placeholder text with the student's name pdfDoc.replaceText(PageSelection.firstPage(), "Recipient Name", name); // Save the new PDF with the student's name as the file name pdfDoc.saveAs(Paths.get("Certificate/" + name + ".pdf")); } } } import com.ironsoftware.ironpdf.PageSelection; import com.ironsoftware.ironpdf.PdfDocument; import java.io.IOException; import java.nio.file.Paths; public class CertificateGenerator { public static void main(String[] args) throws IOException { // Array of student names String[] studentNames = {"Georgia Wade", "Juliet Dave", "Olive Seth", "Miles Jorg", "Oscar Den"}; // Iterate through each student's name for (String name : studentNames) { // Load the PDF template PdfDocument pdfDoc = PdfDocument.fromFile(Paths.get("CERTIFICATE.pdf")); // Replace the placeholder text with the student's name pdfDoc.replaceText(PageSelection.firstPage(), "Recipient Name", name); // Save the new PDF with the student's name as the file name pdfDoc.saveAs(Paths.get("Certificate/" + name + ".pdf")); } } } JAVA Following are the output logs: Output The above code creates an array of student names and then uses the IronPDF library to replace a placeholder text in a pre-existing PDF template with each student's name and then saves a new copy of the PDF with the student's name as the file name. Here's how the code works: The studentNames array is defined and initialized with five student names. The for loop iterates through each name in the studentNames array. The PdfDocument.fromFile method loads the PDF template file named "CERTIFICATE.pdf" into a PdfDocument object. The PdfDocument.replaceText method is used to replace the text "Recipient Name" in the PDF template with the current student's name. The PdfDocument.saveAs method saves the modified PDF file with the student's name as the file name in the "Certificate" directory. The loop continues until all student names have been processed. In this way, multiple certificates are generated, each with a unique student name, based on a single PDF template. The same approach can be used to generate PDF documents with any template. Generated PDF Files PDF Outputs Certificate Output File Following is the certificate generated by this demo program. Certificate Output Step 5: Create PDF Template from HTML Template In this example, the HTML file will be used to create a PDF template and then will use that template to generate a PDF document. This is the HTML file for demonstrating in the example. HTML Output Consider the following code example to create a new document from the given HTML format. import com.ironsoftware.ironpdf.PdfDocument; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class HtmlToPdfExample { public static void main(String[] args) throws IOException { // Path to the HTML template Path fileName = Path.of("D:\\index.html"); // Dynamic data to replace placeholders in the template String userName = "Mike"; String title = "Sample PDF File"; String body = "This is the body of our template PDF"; // Read the HTML file content as a string String htmlStr = Files.readString(fileName); // Replace placeholders with actual data htmlStr = htmlStr.replace("{UserName}", userName); htmlStr = htmlStr.replace("{Title}", title); htmlStr = htmlStr.replace("{message}", body); // Render the HTML as a PDF document using IronPDF PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlStr); // Save the generated PDF document in the specified directory pdfDoc.saveAs(Paths.get("htmlTemplate/" + userName + ".pdf")); } } import com.ironsoftware.ironpdf.PdfDocument; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class HtmlToPdfExample { public static void main(String[] args) throws IOException { // Path to the HTML template Path fileName = Path.of("D:\\index.html"); // Dynamic data to replace placeholders in the template String userName = "Mike"; String title = "Sample PDF File"; String body = "This is the body of our template PDF"; // Read the HTML file content as a string String htmlStr = Files.readString(fileName); // Replace placeholders with actual data htmlStr = htmlStr.replace("{UserName}", userName); htmlStr = htmlStr.replace("{Title}", title); htmlStr = htmlStr.replace("{message}", body); // Render the HTML as a PDF document using IronPDF PdfDocument pdfDoc = PdfDocument.renderHtmlAsPdf(htmlStr); // Save the generated PDF document in the specified directory pdfDoc.saveAs(Paths.get("htmlTemplate/" + userName + ".pdf")); } } JAVA The above code reads the content of an HTML file, replaces placeholders in the HTML file with dynamic data, renders the HTML as a PDF document using the IronPDF library, and saves the generated PDF document in a specific directory. Here's a step-by-step explanation of what the code does: The code begins by creating a Path object that points to an HTML file on the local file system. In this case, the file is located at "D:\index.html". Three variables are declared and initialized with some sample data: userName, title, and body. The content of the HTML file is read into a string variable called htmlStr using the Files.readString method. The String.replace method is used to replace three placeholders ({UserName}, {Title}, and {message}) in the HTML file with the corresponding dynamic data. The PdfDocument.renderHtmlAsPdf method is called with the modified HTML string as an argument to render the HTML as a PDF document. The resulting PDF document is stored in a PdfDocument object called pdfDoc. The pdfDoc.saveAs method is called to save the generated PDF document to a directory called "htmlTemplate" on the local file system, with the filename constructed from the userName variable. Output In this way, it is easy to create PDF files from HTML templates programmatically. It is possible to replace this watermark by getting a free trial or purchasing a commercial license. Conclusion This article explored how to use IronPDF for Java to generate PDF files. IronPDF provides a simple and powerful interface that allows you to create and manipulate PDF files with ease. With IronPDF, you can easily create professional-looking PDF documents that can be used for a variety of purposes, such as generating reports, invoices, and other types of documents. IronPDF is also highly customizable, with options to control the appearance and layout of PDF files. Developers can specify page margins, font sizes, colors, and other properties to create PDF files that match their specific requirements. Overall, IronPDF is a powerful and flexible library for PDF generation in Java. With its easy-to-use interface and wide range of features, IronPDF is a great choice for any application that requires PDF generation. Download IronPDF for Java, the software product. Frequently Asked Questions How do I generate a PDF from a template in Java? To generate a PDF from a template in Java using IronPDF, load the template with PdfDocument.fromFile, replace placeholders using PdfDoc.replaceText, and save the document with the SaveAs method. What are the steps to add a PDF library to a Java project in IntelliJ IDEA? To add IronPDF to a Java project in IntelliJ IDEA, include its Maven dependency in the pom.xml file, specifying the library's groupId, artifactId, and version. Can I use HTML templates to create PDFs in Java? Yes, IronPDF allows you to create PDFs from HTML templates. You can read an HTML file, replace placeholders with dynamic data, and render it as a PDF document. How can I replace placeholders in a PDF template using IronPDF? Use the PdfDocument.replaceText method to replace placeholders in a PDF template. You need to specify the text to be replaced and the new content for the PDF document. What are some common use cases for PDF generation using templates? Common use cases for PDF generation using templates include generating certificates, creating invoices, and producing reports where consistent formatting and dynamic content insertion are required. How do I create a new Java project in IntelliJ IDEA for PDF generation tasks? In IntelliJ IDEA, start by selecting 'Create New Project', choose 'Java', set the JDK version, and configure project settings. You can then add IronPDF to your project's dependencies. What benefits does IronPDF offer for PDF creation in Java? IronPDF simplifies PDF creation in Java by providing an intuitive interface, supporting template handling, and offering features like fillable forms and digital signatures. Is it possible to customize the layout of PDFs generated with IronPDF? Yes, IronPDF allows customization of PDF layout, including adjusting page margins, font sizes, colors, and other visual elements to meet specific design requirements. What types of projects are ideal for using IronPDF? Projects requiring the generation of professional PDFs, like reports, invoices, and certificates, benefit from IronPDF's flexibility and powerful features. Darrius Serrant Chat with engineering team now Full Stack Software Engineer (WebOps) Darrius Serrant holds a Bachelor’s degree in Computer Science from the University of Miami and works as a Full Stack WebOps Marketing Engineer at Iron Software. Drawn to coding from a young age, he saw computing as both mysterious and accessible, making it the perfect medium for creativity ...Read More Related Articles Updated June 22, 2025 How To Convert TIFF To PDF in Java This comprehensive guide will walk you through the steps on how to convert TIFF image to PDF seamlessly in Java using IronPDF. Read More Updated July 28, 2025 How to Convert PDF to PDFA in Java In this article, we will explore how to convert PDF files to PDF/A format in Java using IronPDF. Read More Updated July 28, 2025 How to Create A PDF Document in Java This article will provide a comprehensive guide to working with PDFs in Java, covering key concepts, the best library, and examples. Read More How to Generate PDF Report in JavaJava PDF Stamper (Beginner Tutorial)
Updated June 22, 2025 How To Convert TIFF To PDF in Java This comprehensive guide will walk you through the steps on how to convert TIFF image to PDF seamlessly in Java using IronPDF. Read More
Updated July 28, 2025 How to Convert PDF to PDFA in Java In this article, we will explore how to convert PDF files to PDF/A format in Java using IronPDF. Read More
Updated July 28, 2025 How to Create A PDF Document in Java This article will provide a comprehensive guide to working with PDFs in Java, covering key concepts, the best library, and examples. Read More
All your questions are answered to make sure you have all the information you need. (No commitment whatsoever.)