USING IRONPDF FOR JAVA Java PDF Stamper (Beginner Tutorial) 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 IronPDF - Java PDF Library IronPDF is a Java PDF Library for generating, reading, and editing PDF documents. It allows users to work with PDF documents with ease and accuracy. IronPDF for Java is built on the success of IronPDF for .NET and provides efficiency across different platforms. IronPDF for Java uses IronPdfEngine, which is fast and optimized for performance. IronPDF helps extract text and images from PDFs and other objects from PDF files. It helps create PDFs from HTML String, URL, and images. It also allows conversion between different file formats. You can easily add new content and add digital signatures to PDFs along with document metadata to existing PDF documents. It is designed especially for Java 8+, Scala, and Kotlin, on any Windows, Linux, and Cloud platforms. Steps to Create PDF Stamper using IronPDF in Java Application Prerequisites To make a PDF Stamper, you will need the following prerequisites: 1. Java IDE You can use any Java-supported IDE. There are a bunch of IDEs available for Java development. This demonstration will be using IntelliJ IDE. You can use NetBeans, Eclipse, etc. 2. Maven Project Maven is a dependency manager and allows control over the Java project. Maven for Java can be downloaded from the official Maven website. IntelliJ IDE for Java contains Maven support. 3. IronPDF You can download and install IronPDF for Java in multiple ways. Adding IronPDF dependency in the pom.xml file in the Maven project. <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>LATEST_VERSION</version> <!-- Make sure to replace LATEST_VERSION with the actual version number --> </dependency> <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>LATEST_VERSION</version> <!-- Make sure to replace LATEST_VERSION with the actual version number --> </dependency> XML Visit the Maven website and download the latest IronPDF package for Java from the Maven repository for IronPDF. Directly download IronPDF from the IronPDF official download section on IronPDF.com. Manually install IronPDF using the IronPDF JAR file in your Java application. 4. Slf4j This dependency is also required to stamp content on an existing PDF document. It can be added using the Maven dependencies manager in IntelliJ or directly downloaded from the Maven website. Add the following dependency to the pom.xml file: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>2.0.5</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>2.0.5</version> </dependency> XML Adding Necessary Imports Once all the prerequisites are installed, the next step is to import the necessary IronPDF packages to work with PDF documents. Add the following code on top of the Main.java file: import com.ironsoftware.ironpdf.License; import com.ironsoftware.ironpdf.PdfDocument; import com.ironsoftware.ironpdf.edit.PageSelection; import com.ironsoftware.ironpdf.metadata.MetadataManager; import com.ironsoftware.ironpdf.security.PdfPrintSecurity; import com.ironsoftware.ironpdf.security.SecurityManager; import com.ironsoftware.ironpdf.security.SecurityOptions; import com.ironsoftware.ironpdf.stamp.*; import java.io.IOException; import java.nio.file.Paths; import java.util.Date; import com.ironsoftware.ironpdf.License; import com.ironsoftware.ironpdf.PdfDocument; import com.ironsoftware.ironpdf.edit.PageSelection; import com.ironsoftware.ironpdf.metadata.MetadataManager; import com.ironsoftware.ironpdf.security.PdfPrintSecurity; import com.ironsoftware.ironpdf.security.SecurityManager; import com.ironsoftware.ironpdf.security.SecurityOptions; import com.ironsoftware.ironpdf.stamp.*; import java.io.IOException; import java.nio.file.Paths; import java.util.Date; JAVA License Key Some methods available in IronPDF require a license to be used. You can purchase a license or try IronPDF for free with a trial license. You can set the key as follows: // Set the IronPDF license key License.setLicenseKey("YOUR-KEY"); // Set the IronPDF license key License.setLicenseKey("YOUR-KEY"); JAVA Open an Existing PDF Document To import an existing document for stamping new content, PdfDocument class is used. Its static fromFile method is used to load a file from a specific path with the actual file name. The code goes as follows: // Load an existing PDF document PdfDocument pd = PdfDocument.fromFile(Paths.get("sample.pdf")); // Load an existing PDF document PdfDocument pd = PdfDocument.fromFile(Paths.get("sample.pdf")); JAVA Loaded original document: The sample document Add New HTML Content IronPDF provides a stamp package. It allows a bunch of useful stamping options like BarcodeStamper, HtmlStamper, ImageStamper, TextStamper, and others for content alignment. To add new HTML content to this PDF document HtmlStamper class will be used. Let's use the file in the previous section and add some content to it. The following code helps to achieve this task: // Create an HtmlStamper and set its content HtmlStamper htmlStamper = new HtmlStamper(); htmlStamper.setHtml("New content added!"); // Create an HtmlStamper and set its content HtmlStamper htmlStamper = new HtmlStamper(); htmlStamper.setHtml("New content added!"); JAVA A HtmlStamper object is created and then used its setHtml method to attach new HTML code. The next step is to apply it to the existing PDF document to create a new PDF version. Adding all the Interactive Elements to PDF Document Using the PdfDocument object created earlier to add the HTML code to the existing document. It provides applyStamp with two overloads, one that accepts only the content as a Stamper object and the other with page selection as well. // Apply the stamper to the PDF document pd.applyStamp(htmlStamper); // Apply the stamper to the PDF document pd.applyStamp(htmlStamper); JAVA This will add the string description to the existing document. Saving the Changes to the PDF To save the file, use the saveAs method of the PdfDocument object. // Save the modified PDF document pd.saveAs("stamped.pdf"); // Save the modified PDF document pd.saveAs("stamped.pdf"); JAVA The stamped PDF file The HTML string is added to every page of the PDF document and at the middle of every page. Stamp to Specific Pages You can use another overload of the applyStamp method to add the content to a specific page. // Stamp content to a specific page pd.applyStamp(htmlStamper, PageSelection.singlePage(1)); // Stamp content to a specific page pd.applyStamp(htmlStamper, PageSelection.singlePage(1)); JAVA PageSelection class provides different methods to control the page number. firstPage, lastPage, allPages, and pageRange are some methods available to add the content appropriately. Aligning the Content You can use setVerticalAlignment, setHorizontalAlignment, setWidth, setHeight methods in each Stamper class to adjust the position of the content added to the existing PDF document. The following example code will help to place the text at the bottom left of the page: // Set the alignment of the stamper htmlStamper.setHorizontalAlignment(HorizontalAlignment.LEFT); htmlStamper.setVerticalAlignment(VerticalAlignment.BOTTOM); // Set the alignment of the stamper htmlStamper.setHorizontalAlignment(HorizontalAlignment.LEFT); htmlStamper.setVerticalAlignment(VerticalAlignment.BOTTOM); JAVA The output PDF file with stamper alignment You can use setVerticalOffset, setHorizontalOffset method to further adjust the positioning of the content. For more information on working with PDF files using IronPDF visit this code example for HTML to PDF conversion in Java. Stamp Metadata, Signature, and Security Options to Existing Document IronPDF for Java is a versatile library and provides the facility to add file descriptions in the form of metadata, user permissions, user password, add digital signature, and create signed documents to save the version of the PDF document. Metadata // Edit file metadata MetadataManager metadata = pd.getMetadata(); metadata.setAuthor("Satoshi Nakamoto"); metadata.setKeywords("SEO, Friendly"); metadata.setModifiedDate(new Date().toString()); // Edit file metadata MetadataManager metadata = pd.getMetadata(); metadata.setAuthor("Satoshi Nakamoto"); metadata.setKeywords("SEO, Friendly"); metadata.setModifiedDate(new Date().toString()); JAVA Security Options You can also control the security options of your PDF file so that data is saved from unauthorized use. It provides options to set setAllowUserPrinting, setAllowUserEdits, setAllowUserCopyPasteContent, setAllowUserAnnotations, setUserPassword, setAllowUserFormData parameters to true or false. The following sample code will help to set all the objects properties mentioned above. // Edit file security settings SecurityOptions securityOptions = new SecurityOptions(); securityOptions.setAllowUserCopyPasteContent(false); securityOptions.setAllowUserAnnotations(false); securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS); securityOptions.setAllowUserFormData(false); securityOptions.setOwnerPassword("top-secret"); securityOptions.setUserPassword("sharable"); // Edit file security settings SecurityOptions securityOptions = new SecurityOptions(); securityOptions.setAllowUserCopyPasteContent(false); securityOptions.setAllowUserAnnotations(false); securityOptions.setAllowUserPrinting(PdfPrintSecurity.FULL_PRINT_RIGHTS); securityOptions.setAllowUserFormData(false); securityOptions.setOwnerPassword("top-secret"); securityOptions.setUserPassword("sharable"); JAVA User Password // Change or set the document encryption password SecurityManager securityManager = pd.getSecurity(); securityManager.removePasswordsAndEncryption(); securityManager.makePdfDocumentReadOnly("secret-key"); securityManager.setSecurityOptions(securityOptions); pd.saveAs(Paths.get("assets/secured.pdf")); // Change or set the document encryption password SecurityManager securityManager = pd.getSecurity(); securityManager.removePasswordsAndEncryption(); securityManager.makePdfDocumentReadOnly("secret-key"); securityManager.setSecurityOptions(securityOptions); pd.saveAs(Paths.get("assets/secured.pdf")); JAVA For stamping digital signatures on the actual file, you can see this detailed code example for PDF signatures. Summary This article discussed how to stamp content on an existing PDF document in Java. There is a stamp package with a bunch of useful stamping classes, which can be used to add multiple format content to PDF at any desired location in the original document. IronPDF is a versatile library as it can be seen from the above code examples as well. It is quite simple but yet a very powerful PDF generation and manipulation tool. This helps developers to easily integrate all PDF functionalities in a single Java application program. IronPDF is free for single development and provides a free trial license without a watermark to test out its complete functionality. However, for commercial use, it should be licensed with IronPDF. Lastly, IronPDF offers a special promotion to purchase Iron Software suites in which developers can buy all five Iron Software products for the price of two licenses. Frequently Asked Questions How can I add content to an existing PDF document in Java? You can use the HtmlStamper class from IronPDF for Java to add HTML content to an existing PDF document. This class allows you to integrate new content while preserving the original formatting. What are the main steps to create a PDF stamper in Java? To create a PDF stamper using IronPDF for Java, you need to set up a Java IDE, create a Maven project for dependency management, and include the IronPDF library. Then, import necessary classes, initialize the license, open an existing PDF, and use the HtmlStamper to add content. How can I ensure the formatting of a PDF is preserved when adding new content? IronPDF for Java maintains the original formatting of a PDF when adding new content. This is achieved through its robust rendering engine, which accurately replicates the existing layout while integrating new elements. Is it possible to apply a stamp to only certain pages of a PDF? Yes, with IronPDF for Java, you can use the applyStamp method along with the PageSelection class to target specific pages within a PDF for stamping. How do I adjust the position of stamped content in a PDF document? You can adjust the position of stamped content in a PDF by using setVerticalAlignment and setHorizontalAlignment methods in the HtmlStamper class to control where the new content appears on the page. What are the security features available for PDF documents? IronPDF for Java provides several security features, including setting user permissions, adding passwords, and controlling access to printing, editing, and copying content within PDF documents. Do I need a license to use a PDF library for commercial purposes? Yes, a commercial license is required to use IronPDF for Java in a commercial setting. However, a free trial license is available for testing the full functionality of the library without a watermark. What platforms are compatible with IronPDF for Java? IronPDF for Java is compatible with Java 8+, Scala, Kotlin, and supports various platforms including Windows, Linux, and Cloud environments. How can I convert HTML content into a PDF in Java? You can convert HTML content into a PDF by using IronPDF for Java’s RenderHtmlAsPdf method, allowing HTML strings or files to be rendered accurately as PDF documents. What is required to start using IronPDF for Java in a project? To start using IronPDF for Java, ensure you have a Java IDE like IntelliJ, a Maven project for managing dependencies, and the IronPDF library. You also need to import relevant classes and set up a license for the library. 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 Create PDF From Template in JavaWhat is Maven in Java (How it Works...
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.)